Mongo DB를 사용하여 큰 데이터를 처리하는 Spring 기반 Java 웹 응용 프로그램이 있습니다. 내 응용 프로그램의 한 기능은 많은 양의 데이터를 xls/csv로 내보내는 것입니다. 나는 약 550 만 레코드를 가지고 있고 그것을 xls로 내보내고 싶다. 단일 xls 파일에서 지원하는 최대 행 수는 약 1 백만 개입니다. 그래서 처음에는 1 백만 개의 레코드가있는 5-6 개의 파일을 만들 계획이었습니다.JVM 힙 크기 제어 또는 예측
그러나 데이터베이스에서 데이터를 추출한 후에 대량의 Java 객체를 처리하는 동안 메모리 예외가 발생합니다. 이 객체는 각각 xls의 한 행에 해당합니다.
이 앱은 메모리 크기가 다른 여러 서버에 설치할 수 있으므로 나는 메모리 예외가 발생하지 않고 파일을 엑셀로 내보낼 수있는 객체의 안전성을 예측하고 싶습니다. 요컨대 아래에 언급 한 수식을 구현하고 싶습니다.
No of objects to be exported = (Heap space available - some Buffer)/ Size occupied by single obejct
어떻게해야합니까?
감사합니다 Raju! 이것은 크게 도움이되었습니다. –
참고 : 사용 가능한 메모리 크기는 전체 GC 후에 만 의미가 있습니다. 그 전에는 정리 될 수 있지만 GC가 실행되지 않았던 개체가 있기 때문에 더 낮아질 것입니다. –