我使用 jprofiler 来检测客户端代码的内存泄漏。启动时,java.util.hashmap$entry 使用的内存急剧增加至 1700KB。之后也减少了。堆转储显示 java.lang.ref.finalizer 正在使用最大内存。它得出什么结论?当我尝试在源代码中找到 Finalize() 时,它不在那里。 HTML 文件中的 Finalize() 是这样使用的。 finalize , 这是什么意思?原因是finalize()还是引用hashmap$entry导致了泄漏?
最佳答案
如果你想查找内存泄漏,你应该查看一次 Full GC 后使用了多少内存,如果有大量可终结引用,则应查看两次,否则你可能会看到大量临时对象,而这些对象并没有发生。事情。
我怀疑您所看到的两种数据类型都不是问题,尤其是如果它们的使用量定期下降的话。寻找只会上升的消费。
关于java - java中的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13152273/