Android性能优化-MAT工具的简单使用

本文介绍了Android性能优化中的关键工具MAT的使用,包括下载安装、获取.hprof文件的方法,以及Histogram、Dominator Tree、Top Consumers、Thread_Overview等功能的详细解释。通过查看GC引用关系,能有效检测和分析内存泄露问题。总结了MAT的基本操作,为实际工作中的内存管理提供了指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MAT的简单介绍
MAT(Memory Analyzer Tool) 是基于heap dumps来进行内存分析的工具,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。
2.下载安装
3.获取.hprof文件
  • 在android studio中打开Android Monitor面板,选择Memory,点击左侧dump java heap按钮dump内存信息,会在项目的captures文件夹下生成.hprof文件,(进文件夹里看,)如下图所示。
    这里写图片描述
    但是上面生成的文件并不能在mat中打开,我们需要使用hprof-conv工具转一下,hprof-conv在SDK的platform-tools下,windos下双击启动,ubuntu下./hprof-conv启动,转化命令如下

    hprof-conv 输入文件路径 输出文件路径

    结果如图显示:
    这里写图片描述,这样我们就可以在mat中打开了。

  • 当然,我们也可以直接在eclipse中启动DDMS,点击dump xxx,然后stop,就会被mat自动打开了,如下图:
    这里写图片描述
    注意下方的actions区域,这是我们需要重点关注的对象。

4.有用的几个功能
4.1.Histogram:列出内存中的对象,对象的个数以及大小

这里写图片描述

4.2 Dominator Tree 列出最大的对象以及其依赖存活的Object (大小是以Retained Heap为标准排序的)

这里写图片描述

4.3 Top Consumers : 通过图形列出最大的object

这里写图片描述

4.4 Thread_Overview 应用的线程信息。

这里写图片描述

4.5 查看GC引用关系

在dominator tree 试图下,点击某个对象,右键Path To GC Roots —> with all references ,查看引用关系。如下图
这里写图片描述
看到,我这里只有一个引用,复杂的对象是有引用链的,不在多说了,

5. 如何知道是否有内存泄露

上面说了那么多,然而,并没有什么乱用,稀里糊涂的看了一些图,稀里糊涂的知道了一些视图,但是,妈的 我们还不知道怎么去查看哪些有内存泄露。但是,在4.5中我们可以看到GC roots可以看到引用关系,那么,我们就可以通过他来查看了,通过层层的引用关系,我们可以追溯到最终的引用点,通过结合代码分析以及检查引用类型以及被引用类等等。

6.总结

额,这么多下来,我也仅仅是了解到基本用法了,还有更多的用法需要我在工作中去领悟。

最后。给出几个参考链接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值