Java:Memory Analyzer Tool (MAT) 用法:比较两个 heapdump

Posted

技术标签:

【中文标题】Java:Memory Analyzer Tool (MAT) 用法:比较两个 heapdump【英文标题】:Java: Memory Analyzer Tool (MAT) usage: comparing two heapdump 【发布时间】:2012-09-18 11:25:21 【问题描述】:

我正在使用 Eclipse + MAT 插件。我可以看到一个 .hprof 文件堆历史记录,我拍摄了我的 Java 应用程序的两个快照。我希望当我比较两个堆转储时,我可以确定哪些对象实例增加了很多,以便我可以识别内存泄漏的可能性。

netbean 可以这样做吗?

【问题讨论】:

这里已经回答的问题重复:***.com/a/6242089/1078886 Compare heap dump (HPROF) files的可能重复 【参考方案1】:

说明

    在MAT 中打开两个堆转储 打开显示异常行为的堆转储的直方图(通常是内存或线程使用率较高的堆转储)。

    将其与另一个堆转储进行比较

    从列表中选择适当的堆转储

解读结果

类名:在应用中实例化的类,占用内存

对象:在其他堆转储上方或下方存在多少类实例的计数

浅堆:给定类在内存中占用的字节数高于或低于另一个堆转储。

提示

由于 MAT 默认按降序排序我建议切换 ObjectsShallow Heap 列的顺序以查看每个列的顶部异常值两个方向。

通常您应该忽略纯 Java 类,如字符串、数组和映射,而专注于 您的应用 定义的类。

参考

Comparing Objects Official Eclipse Help Doc

【讨论】:

【参考方案2】:

可以。见IBMs blog。

基本上你打开两者,然后在直方图中有一个额外的按钮(最右边的那个)来比较它。

【讨论】:

以上是关于Java:Memory Analyzer Tool (MAT) 用法:比较两个 heapdump的主要内容,如果未能解决你的问题,请参考以下文章

Java堆分析器 - Eclipse Memory Analyzer Tool(MAT)

Java堆分析器 - Eclipse Memory Analyzer Tool(MAT)

Memory Analyzer Tool定位Java heap space内存泄漏

手把手:Java内存泄漏分析Memory Analyzer Tool

Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用 | 寻找C站宝藏

JVM性能分析工具之-- Eclipse Memory Analyzer tool(MAT)