Android Studio-DMMS

本文详细介绍DMMS在解决复杂性能问题、内存分析及线程问题的应用。通过StartMethodProfiling捕捉CPU时间消耗,Heap功能定位内存泄漏,Thread监控线程状态,DumpVHUIAutomator与DumpHPROF辅助视图和对象内存分析,SystemTrace抓取耗时点。掌握这些技巧,可有效优化代码性能。

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

DMMS是as分析问题利器,尤其是棘手的性能问题、内存分析、thread等相关问题

1.Start Method Profiling  :点击start->操作->stop,得到如下文件

常用字段的属性说明如下:
列名                           描述
Name                        该线程运行过程中所调用的函数名
Incle Cpu Time        某函数占用的CPU时间,包含内部调用其他函数的CPU时间
Excl Cpu  Time        某函数占用的CPU时间,但不含内部调用其他函数所占用的CPU时间
Incl Real Time         某函数运行的真实时间,含调用其他函数所占用的真实时间
Excl Real Time        某函数运行的真实时间,不含调用其他函数所占用的真实时间
Call +Recur Calls/Total 某函数被调用次数以及递归调用占总调用次数的百分比
Cpu Time/Call        某函数调用CPU时间与调用次数的比,相当于该函数平均执行时间
Real Time/Call       某函数调用CPU的真实时间;
分析方法:找到耗费cpu或实际运行时间长的函数,查看parent和child,一般真正耗时的函数在child,找出你code中耗时的函数,优化它。over

2.Heap    点击Heap->点击Cause GC  得到如下图表

各个属性意思很清晰,主要看Total Size,如果你手动gc多次后,total size有明显的升高趋势,说明此处出现内存泄露

3.Thread  查看当前各个线程状态

4.Dump VH UI Automator  不用多说,看view


5.Dump HPROF    可以直接拖进as看,也可以用其他工具

Shallow Size是对象本身占据的内存的大小,不包含其引用的对象。对于常规对象(非数组)的Shallow Size由其成员变量的数量和类型来定,数组的ShallowSize由数组类型和数组长度来决定,它为数组元素大小的总和。
Retained Size是对象本身,加上可直接或间接引用到的对象的大小,其中要减去被GC Roots存在另外一条路径引用的对象。所以这也可以理解为GC之后所能回收到内存的总和。
 

6.System Trace    抓trace    使用chrome://tracing/打开,分析耗时点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值