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

use*_*592 8 java profiling

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

netbean能做到吗?

Cor*_*ein 10

指示

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

在此输入图像描述

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

在此输入图像描述

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

在此输入图像描述

解释结果

在此输入图像描述

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

对象:其他堆转储上方或下方存在该类实例的数量。

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

尖端

由于 MAT 默认按降序排序,因此我建议切换“对象”“浅堆”列的排序,以查看每个方向上的最高异常值。

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

参考

比较对象官方 Eclipse 帮助文档


kei*_*iki 2

可以做到。请参阅IBM 博客

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