큰 금액의 데이터 량에서 메모리 제한을 초과하는 20 %의 시간을 읽어야하는 응용 프로그램의 일부가 있습니다. 메모리 제한을 늘릴 수는 있지만 대부분의 시간이 필요할 때 할당량을 높여야하기 때문에 주저하지 않습니다.큰 데이터 목록을 처리하는 방법
커밋 된 java.util.List 구현을 사용하여 이와 같은 최대 부하에 도달했을 때 디스크에 스풀링 할 것을 고려하고 있지만, 더 가벼운 상황에서는 메모리에 남아있게됩니다.
데이터가 컬렉션에 한 번로드되고 이후에 반복 처리되고 처리 된 다음 삭제됩니다. 일단 컬렉션에 있으면 정렬 할 필요가 없습니다.
누구나 그런 접근 방식에 관한 찬반 의견이 있습니까?
이런 종류의 List impl을 제공하는 오픈 소스 제품이 있습니까?
감사합니다.
업데이트 :
- 건방진 아니라,하지만 '거대한'나는 메모리의 양을 초과하는 의미에서 우리는 같은 하드웨어에서 다른 프로세스를 방해하지 않고 할당 기꺼이. 다른 세부 사항은 무엇입니까?
- 응용 프로그램은 기본적으로 여러 데이터베이스 테이블의 데이터를로드하고 이에 대한 광범위한 비즈니스 논리를 수행하는 배치 프로세서입니다. 집계 연산은 완료된 논리의 일부이기 때문에 목록에있는 모든 데이터가 필요합니다. 데이터 수집에 읽고있는 동안 무슨 일 STXXL equivalent in Java
'거대한 양의 데이터와 메모리 제한을 더 잘 정의 할 수 있습니까? –