2010-10-17 45 views
0

如何使用jhat/jvisualvm工具引脚指向堆转储中的内存泄漏?如何使用jhat/jvisualvm工具在堆转储中指向内存泄漏?

在“OutOfMemoryError:Java堆空间错误”期间,我有使用jmap生成的应用程序的堆转储。我使用jhat来分析转储,但信息太大,我无法找到内存泄漏发生的地方。请帮助我指出导致内存泄漏的对象。

回答

0

Visual VM会告诉你,perm gen已被填充,这意味着OOM错误。

当您得到heap dump时,您将能够看到具有最多实例的对象。这应该给你一个线索,罪魁祸首。

+0

你可以得到OOME除了烫发灌装以外的其他许多原因。如果使用分代GC,最有可能的是老一代人。但是,如果垃圾收集时间过长,等等。 – dty 2010-10-17 18:08:16

+0

我举了很多例子。重点在于Visual VM将帮助识别所有这些问题。 – duffymo 2010-10-17 18:16:56