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