使用ZipFileSystem压缩大型文件夹会导致OutOfMemoryError

使用ZipFileSystem压缩大型文件夹会导致OutOfMemoryError,第1张

使用ZipFileSystem压缩大型文件夹会导致OutOfMemoryError

我查看了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。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5490284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存