TraceView工具使用介绍

相信大家一定和我看法一样,移动互联网行业的迅猛发展,可以准确的用一个词来形容,就是“日新月异”,移动应用每天也以数十款、数百款的速度不断涌现出来。这对于我们的测试人员来说是一个挑战,它要求我们与时俱进,必须从传统的基于Web应用的测试转移到移动端,大家准备好了吗?这里作者就向大家介绍一下,我个人认为不错的一些移动端的性能测试工具给大家。

1.  TraceView工具介绍

TraceView是 Android 平台自带的一个很好的性能分析工具。它可以通过图形化的方式让我们了解要跟踪的应用程序性能。

TraceView是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的HotSpot。TraceView本身只是一个数据分析工具,而数据的采集则需要使用 Android SDK 中的 Debug 类或者利用 DDMS 工具。

2.  TraceView工具使用

其用法如下。

(1)开发人员可以在需要考察其性能的关键代码段开始前调用 Android SDK 中 Debug 类的startMethodTracing()函数,并在关键代码段结束前调用stopMethodTracing()函数。这两个函数运行过程中将采集运行时间过程该应用所有的Java线程的函数执行情况,并将采集数据保存到SD卡,然后可以利用 SDK 中的TraceView工具来分析这些数据。

(2)对于没有应用程序源代码的情况,可以借助 Android SDK 中的 DDMS 工具。DDMS 可采集系统中某个正在运行的进程的函数调用的信息。DDMS 中TraceView的使用方法,可以通过选择 Devices 中的应用后,单击  按钮图标(即Start Method Profiling),然后操作自己要进行分析的相关业务内容,并单击 按钮图标(即Stop Method Profiling),可以看到其会自动地打开一个以“ddms”字符开头为其名称的“trace”文件,如图9-1所示。

图9-1 “Android Device Monitor”对话框

可以双击“最大化”,如图9-2所示,其展开后,如图9-3所示。

图9-2 缩放展示的“ddms6298973423440867579.trace”信息

图9-3 展开后的“ddms6298973423440867579.trace”信息

TraceView界面比较复杂,划分为上、下两个面板,即时间线面板和分析面板。上半部分为时间线面板,又可细分为左、右两个子面板。

(1)左边的子面板显示的是测试数据中所采集的线程信息。

(2)右边的子面板为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。同时可以在时间线子面板中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。

下半部分的分析面板是TraceView的核心部分,其内涵非常丰富。它主要展示了某个线程中各个函数调用的情况,包括CPU使用时间、调用次数等信息。而这些信息正是查找HotSpot的关键依据。也许大家对分析面板的各列信息项不是十分清楚,这里我将向大家介绍一下其含义,如表9-1所列。

表9-1                                           分析面板各列名称及其对应含义

   

   义

Name

该线程运行过程中所调用的函数名称

InclCpuTime

某函数占用的CPU时间,包含内部调用其他函数的CPU时间

Excl CpuTime

某函数占用的CPU时间,但不包含内部调用其他函数所占用的CPU时间

InclRealTime

某函数运行的真实时间(以毫秒为单位),内涵调用其他函数所占用的真实时间

Excl RealTime

某函数运行的真实时间(以毫秒为单位),不含调用其他函数所占用的真实时间

Call+Recur Calls/Total

某函数被调用次数以及递归调用占总调用次数的百分比

CpuTime/Call

某函数调用CPU时间与调用次数的比值,相当于该函数平均执行时间

Real Time/Call

CPU Time/Call 类似,只不过统计单位换成了真实时间

3. 重点提示

(1)如果在源代码中需考察代码段应用Debug.startMethodTracing(“mytest”)和Debug.stopMethodTracing()函数、运行相应的应用程序和对应的功能后,将在“SD”卡下产生一个对应的“mytest.trace”文件,然后,就可以应用“traceviewmytest.trace”命令打开该“trace”文件了,其显示内容与图9-3类似。

(2)Traceview其实是一个批处理文件,该文件存放在AndroidSdk的“Tools”文件夹下,其对应的名称为“traceview.bat”。

(3)通常,我们在应用traceview进行分析时,首先按照“InclCpuTime”进行排序,看哪个函数占用的CPU时间最长,然后再查看对应的调用关系图,分析调用次数最多和耗时时间最长的是否程序内部存在因逻辑、算法等而产生的问题。一般而言,HotSpot包括两种类型的函数是需要我们重点关注的。

① 一类是调用次数不多,但每次调用却需要花费很长时间的函数。

② 另一类是那些自身占用时间不长,却非常频繁调用非常耗时的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试者家园

你的认同,是我深夜码字的光!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值