2010-10-17 13 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