Android Studio使用MAT分析工具

Memory Analyzer Tool

 简单介绍

MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。

使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。

为什么使用MAT?

当服务器应用占用了过多内存的时候,会遇到OutOfMemoryError,但空间却回收不了,引发内存泄露
java服务器系统异常,比如load飙高,io异常,或者线程死锁等,都可能通过分析堆中的内存对象来定位原因
Eclipse MAT的出现使这个问题变得非常简单。它能够离线分析dump的文件数据。
Eclipse MAT是SAP公司贡献的一个工具,可以在Eclipse网站下载到它,完全免费的。

下载地址:Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

已经到1.14.0的版本了

使用Eclipse的同学可以在Eclipse中安装mat插件

图片中Update Site是插件地址:http://download.eclipse.org/mat/1.7/update-site/

初始界面:

使用MAT工具分析文件时遇到的一个错误

今天主要介绍一下我使用MAT工具分析文件时遇到的一个错误

Error opening heap dump 'a.hprof'. Check the error log for further details.
Error opening heap dump 'a.hprof'. Check the error log for further details.
Unknown HPROF Version (JAVA PROFILE 1.0.3) (java.io.IOException)
Unknown HPROF Version (JAVA PROFILE 1.0.3)

原因是: android的虚拟机导出的内存文件hprof文件格式与标准的 java hprof文件格式标准不一样,根本原因两者的虚拟机不一致导致的。

只需要使用SDK中自带的转换工具转换就可以了

第一个hprof文件为你从AS中获取的,要被转化的,第二个是你自命名的; 

打开MAT

 导入文件

导入出现错误,接下来如何解决呢?

只需要使用SDK中自带的转换工具转换就可以了

之前的原因已经提过了,操作的话也可看到,为了大家更好的操作,我们截图

 然后

其中 hprof-conv 命令 这样使用 
hprof-conv 源文件 新文件路径

导入a.hprof 文件就可以成功了

点击Finish生成报告

具体的使用方法的话可以参考

Android 内存性能优化(推荐)_大渔歌_的博客-CSDN博客

Android内存优化的“三大优化方向”_大渔歌_的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/gqg_guan/article/details/130262445