我已经使用 jmap
工具从我的 java 应用程序生成了一个堆转储 -> 这导致了一个大的二进制堆转储文件。
如何在 IntellIJ IDEA 中对此堆转储执行内存分析?
我知道有用于 Eclipse 和 Netbeans 的工具,但如果可能的话我宁愿使用 IDEA。
分析的基本结果会告诉我内存中每个对象的实例数,每个类,让我能够开始调试内存泄漏。
原文由 vikingsteve 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经使用 jmap
工具从我的 java 应用程序生成了一个堆转储 -> 这导致了一个大的二进制堆转储文件。
如何在 IntellIJ IDEA 中对此堆转储执行内存分析?
我知道有用于 Eclipse 和 Netbeans 的工具,但如果可能的话我宁愿使用 IDEA。
分析的基本结果会告诉我内存中每个对象的实例数,每个类,让我能够开始调试内存泄漏。
原文由 vikingsteve 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想将上面的答案更新到 2018 年,并说同时使用 VisualVM 和 Eclipse MAT。
VisualVM 用于实时监控和转储堆。您还可以非常强大地分析那里的堆转储,但是 MAT 具有更多功能(例如自动分析以查找泄漏),因此,我将 VisualVM 转储输出(.hprof 文件)读取到 MAT 中。
在此处下载 VisualVM: https ://visualvm.github.io/
然后你会在 intellij 中看到另外 2 个新的橙色图标:
使用橙色应用程序运行应用程序后,在 VisualVM 中,您将在左侧看到您的进程,在右侧看到数据。坐下来学习这个工具,它非常强大:
在这里下载: https ://www.eclipse.org/mat/downloads.php
希望能帮助到你!
原文由 nbtk 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.2k 阅读
8 回答5.9k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
最好的东西是 内存分析器 (MAT) ,IntelliJ 没有任何捆绑的堆转储分析器。