繁体   English   中英

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

[英]How can I analyze a heap dump in IntelliJ? (memory leak)

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

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

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

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

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

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

如何使用:

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



获取 VisualVM:

在此处下载 VisualVM: https : //visualvm.github.io/

您还需要下载 Intellij 插件: 在此处输入图片说明

然后你会在 intellij 中看到另外 2 个新的橙色图标: 在此处输入图片说明

使用橙色运行应用程序后,在 VisualVM 中,您将在左侧看到您的进程,在右侧看到数据。 坐下来学习一下这个工具,它非常强大: 在此处输入图片说明



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

在这里下载: 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 文件

就是这样,你完成了!

Intellij Idea 的 VisualVM 插件

在此处输入图片说明

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

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

IntelliJ IDEA 2021.2<\/strong>开始,有一个功能叫做Open an external profiling report<\/a> 。 查看器的 UI 如下所示:

您可以通过以下任一方式查看堆转储:

  1. 从主菜单查看<\/strong>>工具窗口<\/strong>>探查器<\/strong>,然后单击打开快照<\/strong><\/li>
  2. 运行<\/strong>>打开 Profiler 快照<\/strong>> 从主菜单打开<\/strong><\/li>
  3. 将堆转储文件拖入 IntelliJ 窗口<\/li><\/ol>"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM