Java:内存分析器工具(MAT)用法:比较两个堆转储
我使用的是Eclipse+MAT插件。我可以看到一个.hprof文件堆历史记录,我为我的Java应用程序拍摄了两个快照。我希望当我比较两个堆转储时,我可以计算出哪个对象实例增加了很多,这样我就可以识别内存泄漏的可能性。
netbean可以做到这一点吗?
解决方案
说明
- 在MAT 中打开两个堆转储
- 打开显示异常行为的堆转储(通常是内存或线程使用率较高的堆转储)的直方图。
- 将其与另一个堆转储进行比较
- 从列表中选择适当的堆转储
解释结果
类名:应用程序中实例化的类,占用内存
对象:类实例数量的计数高于或低于其他堆转储。
浅堆:给定类在其他堆转储上方或下方的内存中占用的字节数。
提示
由于MAT默认按降序排序,因此我建议切换对象和浅堆列的顺序,以查看每个列在两个方向上的最大异常值。
通常您应该忽略纯Java类,如String、Array和Maps,而专注于您的应用程序定义的类。
引用
Comparing Objects Official Eclipse Help Doc
相关文章