您的位置:首页 > 移动开发 > Android开发

Android的性能测试

2011-10-16 12:10 176 查看
Traceview是Android平台下的性能测试工具,它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。它包含了两部分,一部分用于程序执行过程中采集数据,另一部分用于在程序执行完毕后对数据进行分析。

第一步采集数据

用户可以选择激活或者取消实时数据采集功能。当该功能激活以后,Traceview进程就会记录下用户程序每一次的函数调用和耗时,并将数据保存到SDCard上的一个二进制文件中。

在程序中调用android.os.Debug.startMethodTracing方法启动实时数据采集,如下:

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);//启动实时数据采集

Debug.startMethodTracing("liming");

}

protected void onStop() {

Debug.stopMethodTracing();//停止数据采集

super.onStop();

}

第二步分析数据

把SDCard上的二进制数据文件导出到你的电脑上,在Dos窗口上进入Android SDK的tools目录,然后执行命令:

traceview c://test.trace

执行指令后将打开图形化分析界面(界面内容说明如下)。

窗口的下半部分是对各个方法调用的汇总图Profile Panel。

Exclusive time是该方法本身基本操作的时间(不包括子方法调用)。

Inclusive time是该方法调用所用的时间(包括子方法调用)。

列1:"Name"表示Method名。

双击Method名,可以看到在上半界面是时间轴面图(Timeline Panel)看他的所消耗的时间段。(用粗的线段标注)。

双击Method名左边的"+"展开后可以看到,该Method的"parents"和"children"

列2:"incl%"表示Method的Inclusive time在整个MethodTracing时间里占的百分比。

列3:"Inclusive"表示Inclusive time。

列4:"Excl%"表示Method的Exclusive time在整个MethodTracing时间里占的百分比。

列5:"Exclusive"表示Exclusive time。

列6:"Calls+RecurCalls/Total"表示对Method的调用次数(包括递归调用)。如:"14+0"表示14次非递归调用,0次递归调用.

列7:"time/calls"表示平均的调用时间(即Inclusive time/ total calls)。

注:如果方法A调用方法B那么方法A称为方法B的"parents",方法B称为方法A的"children."

下边还有搜索框,可以进行方法类等的搜索。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: