我已经从我的 Java 应用程序生成了一个堆转储,这个应用程序已经使用 jmap工具运行了几天-> 这导致了一个大型的二进制堆转储文件。
jmap
我如何执行内存分析的这个堆转储在 IntelIJIDEA?
我知道有一些用于 Eclipse 和 Netbeans 的工具,但如果可能的话,我宁愿使用 IDEA。
分析的基本结果会告诉我内存中每个对象每个类的数量,这样我就可以开始调试内存泄漏了。
您可以从这里安装 JVisualVM 插件: https://plugins.jetbrains.com/plugin/3749?pr=
这将允许您分析插件中的转储。
您还可以使用 VisualVM 启动器从 IDEA 内部启动 VisualVM。 Https://plugins.jetbrains.com/plugin/7115?pr=idea 我个人觉得这样更方便。
最棒的是 内存分析器(MAT),IntelliJ 没有任何捆绑的堆转储分析器。
在插件存储库中还有一个“ JVM 调试器内存视图”,可能会很有用。
你可以运行“ JavaVisualVM”,它位于 jdk/bin/jvisualvm.exe
jdk/bin/jvisualvm.exe
这将打开一个 GUI,使用“ File”菜单-> “ Load...”,然后选择您的 * . hprof 文件
够了,你完了!
我想把上面的答案更新到2018年,并说要同时使用 VisualVM 和 EclipseMAT。
VisualVM 用于实时监视和转储堆。您还可以使用强大的功能分析堆转储,但是 MAT 具有更多的功能(例如自动分析以发现泄漏) ,因此,我读取了 VisualVM 转储输出(。Hprof 文件)输入 MAT。
从这里下载 VisualVM: https://visualvm.github.io/
你还需要下载 Intellij 的插件:
然后你会在 intellij 中看到另外两个新的橙色图标:
用橙色的应用程序运行之后,在 VisualVM 中,您将在左侧看到您的进程,在右侧看到数据。坐一会儿,学习一下这个工具,它非常强大:
这里下载: https://www.eclipse.org/mat/downloads.php
看起来是这样的:
希望能有帮助!
用于 Intellij Ideas 的 VisualVM 插件
从 IntelliJ IDEA 2021.2开始,有一个叫做 打开外部分析报告的功能:
您可以通过以下两种方式查看堆转储: