JVM堆转储未引用的对象

3
我有一个应用程序,使用了比预期更多的短暂对象,这导致了显着的性能问题,我需要解决。为了让你了解问题的规模,伊甸园空间在垃圾回收运行之前的10秒内从大约200mb跳到1800mb,然后再次运行垃圾回收并将伊甸园恢复到原始大小。我已经进行了两次堆转储,一次在垃圾回收后,另一次在下一次运行之前。我想分析这些内容,并查看未引用对象是什么,以便找到问题的源头。但是,当我在eclipse或netbeans中加载堆转储时,两者都似乎删除了与未引用对象相关的数据,并只显示该时间应用程序中引用的200mb对象。是否有人知道一种工具/方法,可以分析堆转储以查看未引用对象是什么?
谢谢,
詹姆斯
4个回答

2

2

1

我不知道有什么工具可以分析堆转储,但是随着JDK发行版一起提供的jvisualvm具有相当不错的内存分析器,我已经用它来调试类似的问题。它应该在你的JDK bin目录中。


1

我已经用IBM Heap 分析器追踪了许多堆相关的问题。

但我猜你必须运行 IBM SDK 才能使用它,但也许值得一试?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接