【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的分析结果:
最右上角表示运行程序总共用了多少时间,从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
作者:风倾清凌
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.