2010-11-07 58 views
3

我有一个应用程序使用了比预期短的对象多得多,这导致了我需要解决的重大性能问题。为了让你了解问题的规模,伊甸园空间在垃圾收集再次运行之前的10秒内从大约200mb跳到1800mb,并使Eden正确地回落。我已经在GC之后进行了2次堆转储,在下次运行之前进行了1次堆转储。我想分析这些并查看未引用的对象是什么,以便我可以找到问题的根源,但是,当我将堆转储加载到eclipse或netbeans时,似乎都会删除与未引用对象关联的数据,并只显示当时在应用程序中引用了200MB的对象。有没有人知道一个工具/方式来分析堆转储来查看未引用的对象是什么?JVM堆转储未引用的对象

感谢,

詹姆斯

回答

1

我不知道来分析堆转储的工具,但jvisualvm自带的JDK分布有一个相当不错的内存设置,我已经习惯调试类似的问题。它应该在你的jdk bin目录下。

1

我已经能够追查了很多堆相关的问题与IBM Heap Analzyer

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