2012-11-03 5 views
2

Map 및 Set 인터페이스를 준수하는 java.util.collection 패키지의 객체를 사용해야하는 경우가 자주 있습니다.대용량 메모리 (데이터 크기) 모음

이러한 개체 (HashMap, TreeMap 등)에 수백만 개의 튜플 또는 엔터티를 삽입하면 삽입 및 조회 모두 크롤링 속도가 느려집니다.

본질적으로 성능이 향상되는 java.util.collection 클래스의 컴포지션 인 클래스를 파생 시켰습니다.

많은 양의 데이터를 처리하기 위해 최적화 된 java.util.collections 패키지와 동일한 오픈 소스가 있는지 궁금합니다.

+2

메모리에 수백만 개의 요소가있는지도와 세트를 만드는 이유는 무엇입니까? 인덱스가있는 관계형 데이터베이스를 사용할 수 없습니까? –

+0

@Maciej Ziarko, RDBMS, NoSQL Dbs에 수백만 개의 요소를 저장하는 데 많은 경우/이점이 있지만, 메모리의 대형 객체로 작업하는 것이 의미가 있고 RDBMS, NoSQL DB 접근 방식보다 훨씬 선호되는 경우가 있습니다. 응답자가 내가 필요하다고 생각하는 프로젝트 Trove를 게시했습니다. 감사합니다 – user1172468

답변

4

더 나은 컬렉션 라이브러리를 얻으려면 trove을 시도하십시오. 그러나 일반적으로 스트리밍이나 다른 형태의 지연로드 (lazy loading)로 이러한 종류의 문제를 해결하기 위해 전체 데이터 세트를 메모리에로드하지 않고 집계와 같은 작업을 수행 할 수 있습니다.

이 데이터를 저장하기 위해 Redis 또는 CouchDB와 같은 키 값 저장소를 사용할 수도 있습니다.

+1

귀하의 회신에 감사드립니다, 1+. 무료로 사용할 수 있습니까? 아니면 먼저 구매해야합니까? –

+2

무료입니다. 포함 된 링크로 이동하여 다운로드 할 수 있습니다. –

+0

@PaulSanwald의 답변에 많은 감사드립니다. 이것은 정확히 내가 원하는 것입니다. Redis/CouchDB의 사용자인데, 내가 생각한 바는 아니지만 Trove가 법안에 적합하다고 생각합니다. 다른 비슷한 프로젝트에 관심이 있으십니까? – user1172468