gpt4 book ai didi

java - 弱引用和内存泄漏

转载 作者:行者123 更新时间:2023-11-29 06:44:06 26 4
gpt4 key购买 nike

我正在使用 VisualVM 分析我的应用程序,我发现堆大小在大约 3 天内增加了大约 7MB。当我使用内存采样器时,我还看到 java.lang.ref.WeakReference 在实例数中排名前五。 WeakReference的数量在增加,GC几乎没有影响。

有什么想法吗?

最佳答案

你没有内存泄漏。

Java 的 GC 仅在堆已满时运行(实际上有点复杂,因为堆本身分为几代,但无论如何),所以除非你正在填充堆(这不太可能,因为 7Mb 的内存太少了对于任何堆)你无法判断是否有泄漏。

WeakReferences 是小型包装器,通过将它们引用的对象标记为可用于 GC,实际上有助于防止内存泄漏。我的猜测是您包含了某种缓存库,它创建了一堆这样的缓存库,并且由于堆仍然有足够的空间,因此不需要对它们进行垃圾回收。

同样,除非您看到 GC 经常运行并且您的堆大小仍然增加,否则我不会担心内存问题。

这是 a great article on this matter

关于java - 弱引用和内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944148/

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