Android应用开发之性能测试之TraceView
传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229
TraceView是Android平台下的性能测试工具,它以图形化的方式向我们展现待跟踪程序的性能,并且能具体到method。TraceView包含两个部分,一部分用于程序执行过程中采集数据,另一部分用于在程序执行完毕后对数据进行分析。
1采集数据
用户可以选择激活或者取消实时数据采集功能。当该功能激活以后,TraceView进程就会记录下用户程序每一次的方法调用和耗时。并将数据保存到SDCard上的一个二进制文件中。
在程序中调用android.os.Debug.startMethodTracing()方法启动实时数据采集,代码如下:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //启动实时数据采集 "/sdcard/calc.trace" Debug.startMethodTracing("calc"); } protected void onStop(Bundle savedInstanceState) { //停止实时数据采集 Debug.stopMethodTracing(); super.onStop(); }
2分析数据
把sdcard的二进制数据文件导出到电脑上,在Dos窗口上进入Android SDK的tools目录,然后执行命令:
traceview c:\\calc.trace
执行指令后将打开图形化分析界面。
窗口的上半部分是时间轴面图(Timeline Panel),右上角的值为方法执行时间的总和。窗口的下半部分是对各个方法调用的汇总图(Profile Panel)。
界面上方的尺子代表了MethodTracing的时间段(从Debug.startMethodTracing(“”)到Debug.stopMethodTracing()的时间)。
列的名称 | 列的涵义 |
---|---|
Name | 方法的名称 |
Incl % | 执行方法总时间在整个MethodTracing时间里所占百分比 |
Inclusive | 执行方法总时间 |
Excl % | 执行方法基本操作的时间(不包括调用子方法的耗时)在整个MethodTracing时间里所占百分比 |
Exclusive | 执行方法基本操作的时间(不包括调用子方法的耗时) |
Calls+Rec | 执行方法的次数(如:”4+0″表示4次非递归调用,0次递归调用;”3/2″表示3次非递归调用,2次递归调用。) |
Cpu Time | 执行方法的平均时间(即执行方法总时间/执行方法的次数) |