我查看了ZipFileSystem.java,我相信找到了内存消耗的来源。默认情况下,该实现将
ByteArrayOutputStream用作压缩文件的缓冲区,这意味着它受分配给JVM的内存量的限制。
我们可以使用一个(未记录的)环境变量来使实现使用临时文件(
"useTempFile")。它是这样的:
Map<String, Object> env = new HashMap<>();env.put("create", "true");env.put("useTempFile", Boolean.TRUE);
此处有更多详细信息:http
:
//www.docjar.com/html/api/com/sun/nio/zipfs/ZipFileSystem.java.html,有趣的行是96、1358和1362。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)