如何在IntelliJ中分析堆转储? (内存泄漏)

问题描述 投票:45回答:6

我已经从我的java应用程序生成了一个堆转储,它已经使用jmap工具运行了几天 - >这导致了一个大的二进制堆转储文件。

如何在IntellIJ IDEA中对此堆转储执行内存分析?

我知道有Eclipse和Netbeans的工具,但如果可能的话我宁愿使用IDEA。

分析的基本结果将告诉我每个类在内存中每个对象的实例数,以便我能够开始调试内存泄漏。

java intellij-idea heap-dump jmap memoryanalyzer
6个回答
36
投票

最好的东西是Memory Analyzer (MAT),IntelliJ没有任何捆绑的堆转储分析器。


20
投票

我想将上面的答案更新到2018年并说要使用VisualVM和Eclipse MAT。

How to use:

VisualVM用于实时监控和转储堆。您还可以用很强的功能分析那里的堆转储,但是MAT有更多的功能(例如自动分析来查找泄漏),因此,我将VisualVM转储输出(.hprof文件)读入MAT。



获取VisualVM:

在这里下载VisualVM:https://visualvm.github.io/

您还需要下载Intellij:enter image description here的插件

然后你会在intellij中看到另外两个新的橙色图标:enter image description here

使用橙色应用程序运行应用程序后,在VisualVM中,您将在左侧看到您的进程,在右侧看到数据。坐下来学习这个工具,它非常强大:enter image description here



将Eclipse的内存分析工具(MAT)作为独立工具获取:

在这里下载:https://www.eclipse.org/mat/downloads.php

这就是它的样子:enter image description here enter image description here

希望能帮助到你!


9
投票

您还可以使用VisualVM Launcher从IDEA中启动VisualVM。 https://plugins.jetbrains.com/plugin/7115?pr=idea我个人认为这更方便。


4
投票

插件存储库中还存在“JVM调试器内存视图”,这可能很有用。


2
投票

您可以运行位于jdk/bin/jvisualvm.exe的“Java VisualVM”

这将打开一个GUI,使用“文件”菜单 - >“加载...”然后选择你的* .hprof文件

就是这样,你完成了!


-1
投票

您可以从此处安装JVisualVM插件:https://plugins.jetbrains.com/plugin/3749?pr=

这将允许您分析插件中的转储。

© www.soinside.com 2019 - 2024. All rights reserved.