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

时间:2012-09-18 11:25:22

标签: java profiling

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

netbean能做到吗?

2 个答案:

答案 0 :(得分:2)

可以做到。请参阅IBMs blog

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

答案 1 :(得分:0)

说明

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

enter image description here

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

enter image description here

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

enter image description here

解释结果

enter image description here

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

对象:在另一个堆转储的上方或下方的计数

浅堆::给定类在另一个堆转储的上方或下方的内存中占用的字节数。

提示

由于MAT默认情况下按降序排序,因此我建议切换 Objects Shallow Heap 列的顺序,以查看每个双向。

通常,您应该忽略纯Java类,例如Strings,Arrays和Maps,并专注于您的应用定义的类。

参考

Comparing Objects Official Eclipse Help Doc