【android】Traceview 效率检视工具——分析程序运行速度

本文介绍了如何在Android应用开发中使用DDMS工具进行性能分析,包括开始和结束trace的方法,以及如何通过traceview工具解读分析结果,重点突出traceview中各指标的含义,如Exclusive、Inclusive、Name等,并提供了实际案例来说明如何识别和解决性能瓶颈。

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

前提:保证有SD卡,因为所保存的trace文件默认是放在/sdcard/下的。

开始trace,在onCreate()函数中使用命令

Debug.startMethodTracing("result");	//开始记录/sdcard/result.trace文件 

结束trace,在onStop()函数中使用命令

@Override
public void onStop(){
  // TODO Auto-generated method stub
  super.onStop();
		
  Debug.stopMethodTracing();	//结束记录result.trace文件 
}

这样使用DDMS工具将result.trace文件导出(pull),例如放在了E:下,则在命令行中输入命令:

traceview E:/result.trace

则可以看到traceview的分析结果:

7211253_1293608209OYOI

 

    最右上角表示运行程序总共用了多少时间,从traceview画面中我们看到有各种颜色,每种颜色代表不同的函数和步骤,那么同一颜色的区域越大,就代表这个步骤运行时间越长,或者看到下面的统计表,明显可以看出除了序列 0 1 是系统函数外,2. 3.函数 占用的时间比较长,那么序列4是个自定义的函数名为 “hot”这个占用了几乎与主线程 主draw的时间一样了,那么肯定有问题。当然其实这个方法是我故意写的,就是为了来演示traceview。

    那么,在traceview的右半部统计字段中:

Exclusive: 同级函数本身运行的时间

Inclusive 就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间

Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。

Incl: inclusive时间占总时间的白分比

Excl: 执行占总时间的白分比。

Calls+Recur Calls/Total: 调用和重复调用的次数

Time/Call: 总的时间。(ms)

参考地址:http://blog.youkuaiyun.com/xiaominghimi/archive/2010/12/29/6105212.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值