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

时间:2014-10-20 07:25:42

标签: java intellij-idea heap-dump jmap memoryanalyzer

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

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

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

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

7 个答案:

答案 0 :(得分:36)

最好的事情是Memory Analyzer (MAT),IntelliJ没有任何捆绑的堆转储分析器。

答案 1 :(得分:17)

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

使用方法:

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



获取VisualVM:

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

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

然后您将在intellij中看到另外两个新的橙色图标: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

希望有帮助!

答案 2 :(得分:9)

您还可以使用VisualVM Launcher从IDEA中启动VisualVM。 https://plugins.jetbrains.com/plugin/7115?pr=idea 我个人认为这更方便。

答案 3 :(得分:4)

还存在一个JVM调试器内存视图'在插件存储库中找到,这可能很有用。

答案 4 :(得分:2)

你可以运行" Java VisualVM"位于jdk/bin/jvisualvm.exe

这将打开一个GUI,使用"文件"菜单 - > "装载..."然后选择* .hprof文件

那就是你,你已经完成了!

答案 5 :(得分:0)

用于Intellij Idea的VisualVM插件

enter image description here

答案 6 :(得分:-1)

您可以从此处安装JVisualVM插件:https://plugins.jetbrains.com/plugin/3749?pr=

这将允许您分析插件中的转储。