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

前提:保证有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.csdn.net/xiaominghimi/archive/2010/12/29/6105212.aspx

原文地址:https://www.cnblogs.com/Amandaliu/p/2103245.html