我已经从我的java应用程序生成了一个堆转储,它已经使用jmap
工具运行了几天 - >这导致了一个大的二进制堆转储文件。
如何在IntellIJ IDEA中对此堆转储执行内存分析?
我知道有Eclipse和Netbeans的工具,但如果可能的话我宁愿使用IDEA。
分析的基本结果将告诉我每个类在内存中每个对象的实例数,以便我能够开始调试内存泄漏。
最好的东西是Memory Analyzer (MAT),IntelliJ没有任何捆绑的堆转储分析器。
我想将上面的答案更新到2018年并说要使用VisualVM和Eclipse MAT。
VisualVM用于实时监控和转储堆。您还可以用很强的功能分析那里的堆转储,但是MAT有更多的功能(例如自动分析来查找泄漏),因此,我将VisualVM转储输出(.hprof文件)读入MAT。
在这里下载VisualVM:https://visualvm.github.io/
使用橙色应用程序运行应用程序后,在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
的“Java VisualVM”
这将打开一个GUI,使用“文件”菜单 - >“加载...”然后选择你的* .hprof文件
就是这样,你完成了!
您可以从此处安装JVisualVM插件:https://plugins.jetbrains.com/plugin/3749?pr=
这将允许您分析插件中的转储。