gpt4 book ai didi

Java ByteArrayOutputStream 内存泄漏

转载 作者:行者123 更新时间:2023-12-01 05:11:39 30 4
gpt4 key购买 nike

我提出了一个新问题,因为这与我上一个帖子不同。我现在更确切地知道问题是什么。

我创建一个新的 bytearrayoutputstream

ByteArrayOutputStream byteArray = new ByteArrayOutputStream();

没什么特别的。然后,当我向其中写入图像时,这样

ImageIO.write(image, "gif", byteArray);

内存首先增加了 100 MB,不是在 Eclipse 中,而是在“现实”中。然后,每次我向该流或另一个流写入新图像时,它都会慢慢增加!!

一段时间后它停止工作并且有点崩溃。

我尝试过关闭它以及所有这些,刷新,重置,一切,但它仍然泄漏内存。当我停止使用 byteArray 或将其清空时,我希望它远离内存。

System.gc();

在这种情况下没有帮助。

请帮助我以及您需要知道的任何其他信息,我会回答并请返回并回复:)

最佳答案

您的使用模式应该是这样的:

while( keepRunning) {
ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
ImageIO.write(image, "gif", byteArray);
}

如果您执行此操作的速度快于 JVM 收集垃圾的速度,您最终会遇到很长的 GC 暂停或 OutOfMemory 异常。

关于Java ByteArrayOutputStream 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11957981/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com