티스토리 뷰

대략 3기가정도가 되는 압축파일을 만드는 중. 계속된 메모리 부족현상으로 에러가 발생하였다.


해당 부분을 확인하여 FileSystem으로 처리를하면된다고해서 처리했는데 어떤 부분이 문제였을까?


차이점은 아래의 화면에서 확인이 가능하다.




이전 코드같은 경우는 garbage collection에서 메모리를 flush처리가 안된 것 같은데... 정확한 이유는 잘모르겠다...


아무튼 Files.copy API를 사용하더라도 환경 설정값에 따라 처리하는 방식이 다른데, 다른 부분에 대한 설명은 아래의 화면을 보면 알 수 있다. 



userTempFile을 사용하냐 안하냐에 따라 ByteArrayOutputStream을 사용하고 안하고의 차이가 있었다.


해당값을 true로 설정하니 더이상 에러(memory)는 발생하지 않았다.


해당 문제에 대한 힌트는 아래의 url을 통해 확인하였다.


http://stackoverflow.com/questions/23858706/zipping-a-huge-folder-by-using-a-zipfilesystem-results-in-outofmemoryerror





참고: http://www.docjar.com/html/api/com/sun/nio/zipfs/ZipFileSystem.java.html

댓글
공지사항
최근에 올라온 글
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함