Android性能调优工具TraceView介绍

的执行情况,某个方法执行时间、调用次数、在总体中的占比等,从而定位性能点。

1、生成日志,运行TraceView

运行TraceView有两种方式:

a、调用Debug

在开始调试的地方,如ActivityOnCreate函数,添加:

    Debug.startMethodTracing("tracefilename");

结束调试的地方,如ActivityOnCreate函数,添加:

    Debug.stopMethodTracing(); 

之后运行你的app一段时间并退出会在sd卡根目录生成tracefilename.trace这个log文件,记录这段时间内的运行信息。

    将日志文件pullPC端,cmd 到 android 

sdk tools 文件夹内(或绑定sdk tools目录到系统path),运行 traceview 

tracefilename.trace 即可打开 TraceView 分析界面, 

b、使用DDMs

打开devices窗口,选择某个进程,点击右上角的 start method profiling

运行app一段时间后,再点击已变成stop method 

profiling的该按钮。eclipse 会自动弹出debug的标签(可通过菜单 File->save as 保存数据)界面同上面。这种方式不需要修改代码,所以对于没有源码的程序同样可以进行排查。同时可以方便的进行全局性能排查。

2TraceView界面信息介绍

TraceView界面包括时间面板和方法面板

(1) 时间面板(Timeline-Panel)

时间面板展示了每个线程的执行情况,其中的[1]main即为ui主线程。

移动到某个位置可以查看该点对应的方法的执行信息,点击方法面板则会选中相应的方法。可以左键按住不放选中区域放大局部精细查看,不同方法用不同颜色标注。

(2) 方法面板(Profile-Panel)

方法面板展示了所有方法的执行情况,点击某个方法可以查看在对应线程上的执行时间区域,并会显示其父方法及子方法。

每个方法包括如下信息列,可点击某列进行排序,从而确定产生性能问题的函数: 

Incl Cpu Time, Excl Cpu Time, 

Incl Real Time, Excl Real Time, Incl Cpu Time%, Excl Cpu Time%, Incl Real Time%, 

Excl Real Time%, Calls+RecurCalls/Total, Cpu Time/Call, Real Time/Call

所有的Time都是以毫秒计算。每列具体含义及作用如下:

Incl表示将所有子函数耗时也计算在内,Excl则表示不包括子函数的调用时间。对比可以确定耗时操作发生是自身还是子函数中。

Cpu Time表示占用cpu执行的时间,Real 

Time包括Cpu Time以及等待、切换的时间等,所以一般都大于Cpu Time。对比可以判断耗时操作是否在cpu执行段内。

上面四个指标对应的%表示函数在总时间的占比。方便查看某个函数的时间占比。

Calls+RecurCalls/Total表示被外部调用次数+递归次数/总次数。可以查看调用次数是否符合自己预期。

Cpu Time/Call, Real 

Time/Call表示总的Cpu TimeReal Time与总调用次数的比例。查看每次调用的耗时,一般可通过简单此项确定每个函数的性能。

你可能还想了解:使用TraceView性能分析工具的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值