ByteBuffers
및 FileChannels
을 사용하여 이진 데이터를 파일에 기록합니다. 대용량 파일이나 연속적으로 여러 파일을 처리 할 때 OutOfMemoryError
예외가 발생합니다. NIO와 함께 Bytebuffers
을 사용하는 것이 깨 졌으므로이 부분을 읽었으며 피해야합니다. 여러분 중 누구도 이미 이런 종류의 문제에 직면 해 있으며 많은 양의 바이너리 데이터를 자바 파일에 효율적으로 저장하는 해결책을 찾았습니까?Bytebuffers 및 NIO를 사용할 때 OutOfMemoryError를 피하는 방법은 무엇입니까?
jvm 옵션 -XX:MaxDirectMemorySize
가는 방법이 있습니까?
매핑 된 모든 바이트 버퍼 (내 응용 프로그램 또는 모든 OS의 ??)에 대한 제한이 있음을 알려 주셔서 감사합니다. 내 경우에는 주변의 파일에 대해 하나의 MappedByteBuffer를 시도해도 어리석은 OutOfMemoryException이 발생합니다. 1.6GB! 하지만 왜? 남은 공간이 얼마나 넓은 지 어떻게 알 수 있을까요 ?? 도움! – Zordid
@ Zordid Ummm ...'MappedByteBuffer' (매핑 된 키!)는 일반적으로 'OutOfMemoryException'을 발생시키지 않습니다. 뭔가 다른 문제가 있습니다. StackOverflow에 새로운 질문을 만드는 것이 좋습니다 ... 코드로! 누군가 당신을 도울 수 있습니다. –