Java: Memory Analyzer Tool (MAT) usage: comparing two heapdump(Java:内存分析器工具(MAT)用法:比较两个堆转储)
问题描述
我使用的是Eclipse+MAT插件。我可以看到一个.hprof文件堆历史记录,我为我的Java应用程序拍摄了两个快照。我希望当我比较两个堆转储时,我可以计算出哪个对象实例增加了很多,这样我就可以识别内存泄漏的可能性。
netbean可以做到这一点吗?
推荐答案
说明
- 在MAT 中打开两个堆转储
- 打开显示异常行为的堆转储(通常是内存或线程使用率较高的堆转储)的直方图。
- 将其与另一个堆转储进行比较
- 从列表中选择适当的堆转储
解释结果
类名:应用程序中实例化的类,占用内存
对象:类实例数量的计数高于或低于其他堆转储。
浅堆:给定类在其他堆转储上方或下方的内存中占用的字节数。
提示
由于MAT默认按降序排序,因此我建议切换对象和浅堆列的顺序,以查看每个列在两个方向上的最大异常值。
通常您应该忽略纯Java类,如String、Array和Maps,而专注于您的应用程序定义的类。
引用
Comparing Objects Official Eclipse Help Doc
这篇关于Java:内存分析器工具(MAT)用法:比较两个堆转储的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Java:内存分析器工具(MAT)用法:比较两个堆转储
基础教程推荐
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01