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

新手上路,请多包涵

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

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

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

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

原文由 vikingsteve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

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

原文由 Meo 发布,翻译遵循 CC BY-SA 4.0 许可协议

我想将上面的答案更新到 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

这就是它的样子: 在此处输入图像描述在此处输入图像描述

希望能帮助到你!

原文由 nbtk 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题