我已经从我的java应用程序生成了一个堆转储,该转储已使用jmap
工具运行了几天 - >这会产生一个大的二进制堆转储文件。
如何在IntellIJ IDEA中对此堆转储执行内存分析?
我知道有Eclipse和Netbeans的工具,但如果可能,我宁愿使用IDEA。
分析的基本结果将告诉我每个类在内存中每个对象的实例数,以便我能够开始调试内存泄漏。
答案 0 :(得分:36)
最好的事情是Memory Analyzer (MAT),IntelliJ没有任何捆绑的堆转储分析器。
答案 1 :(得分:17)
我想将上述答案更新到2018年,并说同时使用VisualVM和Eclipse MAT。
VisualVM用于实时监视和转储堆。您也可以在此处强大地分析堆转储,但是MAT具有更多功能(例如自动分析以查找泄漏),因此,我将VisualVM转储输出(.hprof文件)读入MAT。
在此处下载VisualVM:https://visualvm.github.io/
运行带有橙色应用程序的应用程序后,在VisualVM中,您将在左侧看到您的进程,在右侧看到数据。花一些时间学习这个工具,它非常强大:
在此处下载:https://www.eclipse.org/mat/downloads.php
希望有帮助!
答案 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)
答案 6 :(得分:-1)
您可以从此处安装JVisualVM插件:https://plugins.jetbrains.com/plugin/3749?pr=
这将允许您分析插件中的转储。