2014-10-20 142 views
26

我已经使用jmap工具运行了几天的java应用程序生成了堆转储 - >这会产生一个大的二进制堆转储文件。如何分析IntelliJ中的堆转储? (内存泄漏)

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

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

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

回答

23

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

+4

MAT有IntelliJ插件吗? – johnsam 2016-09-07 22:00:48

7

您还可以使用VisualVM启动器从IDEA内启动VisualVM。 https://plugins.jetbrains.com/plugin/7115?pr=idea 我个人觉得这样比较方便。

+0

好的,谢谢。这个插件似乎需要我在本地运行java进程 - 是否正确?我想从服务器导出堆转储,将其复制到本地计算机并在此处分析。 – vikingsteve 2014-10-20 08:15:27

+2

此插件只启动VisualVM并在其中打开所需的应用程序。它与你的情况无关。您可以手动启动VisualVM并打开转储。 – Meo 2014-10-20 08:35:23

4

在插件库中还有一个'JVM调试器内存视图',这可能很有用。

+3

该插件与2017.1之后的IDEA版本不兼容。内存视图在IDEA 2017.1开箱即可使用。 https://plugins.jetbrains.com/files/8537/screenshot_16824.png – 2017-09-11 10:55:04

-1

我只是安装一个名为JVM Bugger Analyzer的插件,它工作正常!