MAT内存分析工具
来源:互联网 发布:java并行程序设计 pdf 编辑:程序博客网 时间:2024/05/16 19:48
1.打开Eclipse/Android Studio
2.eclipse选择 Help->Install New Software; AS 中打开devices monitor,选择Help->Install New Software;
3.在Work with中添加站点:http://download.eclipse.org/mat/1.0/update-site/(这个地址可能会变化,但是新的地址可以在官方网站上找到:http://www.eclipse.org/mat/downloads.php ),但是在AS中会报错,安装不了,没办法,可能还不支持!
4.在Eclipse/AS中的DDMS中选择要测试的进程,然后点击Update Heap 和Dump HPROF file两个Button。
把 .hprof 文件保存到PC上的\ android-sdk-windows\tools目录下。这个由DDMS生成的文件不能直接在MAT打开,需要转换。
运行cmd打开命令行,cd到\ android-sdk-windows\tools所在目录,并输入命令hprof-conv xxxxx.hprof yyyyy.hprof,其中xxxxx.hprof为原始文件,yyyyy.hprof为转换过后的文件。转换过后的文件自动放在android-sdk-windows\tools 目录下。
OK,到此为止,.hprof文件处理完毕,可以用来分析内存泄露情况了。
5.打开MAT:
在Eclipse中点击Windows->Open Perspective->Other->Memory Analysis
6.导入.hprof文件
在MAT中点击 File->Open file,浏览到刚刚转换而得到的.hprof文件,并Cancel掉自动生成报告, 否则会自动生成很多文件,点击QQL图标,然后在编辑框中输入你需要查询的类,如:select * from instanceof com.XXX.YYY.ui.BaseFragment, 将会查找到继承自BaseFragment的类。然后按F5 or Ctrl-Enter将会执行查询命令。详细命令书写方式请查看help.
然后选择对应的Package 类点右键,在弹出菜单中选择List objects->With incoming references。
这时会列出所有可疑类,右键点击某一项,并选择Path to GC Roots->exclude all references,会进一步筛选出跟程序相关的所有有内存泄露的类。据此,可以追踪到代码中的某一个产生泄露的类。
最后可以看到有一个mDispatcher被一个list引用了无法释放,接着就是好好查代码吧!
MAT使用方法:http://blog.csdn.net/aaa2832/article/details/19419679/
或者直接查看help !
- 内存分析工具MAT
- MAT内存分析工具
- 内存分析工具MAT(MemoryAnalyzerTool)
- Android 内存分析工具 MAT
- Android 内存分析工具MAT
- Eclipse MAT 内存分析工具
- android内存分析工具MAT
- Android内存分析工具MAT
- MAT内存泄漏分析工具
- MAT(内存分析工具)的使用
- Android 内存分析工具MAT使用
- Android 内存分析工具DDMS和MAT
- MAT 安卓内存分析工具
- eclipse内存分析工具MAT浅谈
- 内存分析工具 MAT 的使用
- 内存分析工具 MAT 的使用
- eclipse内存分析工具MAT浅谈
- 内存分析工具 MAT 的使用
- html-cookie
- 2016-10-19 node.js, web service
- Java 构造器
- Android沉浸式状态栏
- centos6.5 部署java 环境
- MAT内存分析工具
- 输入一个整数部分不超过12位的小数,变成人民币读法
- android系统稳定性-ANR(二)
- AOP实现日志拦截
- 注解 @Resource
- 五险一金,你懂吗?
- 前端学习资料汇总
- rabbitmq 实现延迟队列(ttl+DLX)
- 2016-10-20 EdgeJS, C#<=>node.js