如何在 IntelliJ 中分析堆转储?(内存泄漏)如何使用:

我从我的java应用程序中生成了一个堆转储,该应用程序已经使用工具运行了几天 - >这会导致一个大型二进制堆转储文件。jmap

如何在 IntellIJ IDEA 中对此堆转储执行内存分析?

我知道有Eclipse和Netbeans的工具,但如果可能的话,我宁愿使用IDEA。

分析的基本结果将告诉我内存中每个对象的实例数(每个类),以便我能够开始调试内存泄漏。


答案 1

最好的是内存分析器(MAT),IntelliJ没有任何捆绑的堆转储分析器。


答案 2

我想将上面的答案更新到2018年,并说同时使用VisualVM和Eclipse MAT。

如何使用:

VisualVM 用于实时监视和转储堆。您还可以以强大的功能分析那里的堆转储,但是MAT具有更多功能(例如自动分析以查找泄漏),因此,我将VisualVM转储输出(.hprof文件)读取到MAT中。



Get VisualVM:

在此处下载 VisualVM:https://visualvm.github.io/

您还需要下载Intellij的插件:enter image description here

然后,您将在intellij中看到另外2个新的橙色图标:enter image description here

使用橙色应用运行应用后,在 VisualVM 中,你将在左侧看到进程,在右侧看到数据。坐一会儿学习这个工具,它非常强大:enter image description here



将 Eclipse 的内存分析工具 (MAT) 作为独立工具获取:

在此下载: https://www.eclipse.org/mat/downloads.php

这是它的样子:enter image description here enter image description here

希望它有帮助!


推荐