您现在的位置是:首页 > 文章详情

Systrace的用法小结

日期:2018-05-30点击:612

通过SysTrace可以帮助我们分析性能问题,包含方法的耗时时长、CPU的使用情况、ANR、布局情况等;相比性能工具TraceView,主要用来分析每个方法的执行时间,对于冷启动而言,想抓trace只能通过代码的方式,这样会导致整个应用比较卡顿,测试出的方法时间,不是真正的执行时间,只能看下时间长短的相对占比。而SysTrace工具,能帮助我们解决抓取的方法时间不真实问题。

一般,抓取SysTrace在User Debug的ROM版本,抓取的信息会非常详细;如果不是User Debug版本,可以通过自定义Tag的方式来丰富信息。

自定义TAG

Trace.java的对应的自定义TAG方法如下:

img_d34a4abef9418bd4bc81f36be05f8742.png
Trace.java

traceBegin开始抓取,traceEnd结束抓取(可以嵌套调用,但是一定是要成对出现;另外注意下如果某个方法节点出现异常,会导致顺序错乱,

注意:traceTag一定是在Trace类中定义的常量,而且在抓取的SysTrace的,该TAG有勾选。

Trace.java中定义了如下TAG。

img_1d16da4b2fd79394f61320e7f3ddb923.png
Trace TAG

下面代码为自定义TAG的帮助类:

img_efc5d162ddfcb6df6c86eb181c90d52f.png
自定义TAG

在Activity的onCreate的开始和结束位置调用即可:

img_70f4920b0fb014d53f25006984fc2812.png
使用自定义TAG

这样当启动systrace的时候就会使用自定义的TAG了。如下所示:

img_19f6cdd2626502a6b4235ff193651560.png
自定义TAG结果

打开systrace文件后有如下常用快捷键:

W: 放大页面

S:缩小页面

A:左平移页面

D:右平移页面

M:快速选中区域或者取消选中区域

->: 向右移动一个事件

<-:向左移动一个事件

介绍了自定义TAG,快捷键,那么到底该如何分析trace文件呢?

查找耗时操作:

Systrace可以查看方法的执行时间,方便找出耗时操作,也可以观察出帧的绘制时间。

img_bb089c7d39c1a4ea176d46280db6febb.png
耗时操作

上图可以看出activityStart的执行时间较长,也就是app的冷启动时间较长。红色的F代表帧的绘制时间过长。

查询UI线程的等待

除了UI线程本身耗时外,有时候,我们自身业务中多线程已经执行任务,会存在同步锁问题,此时UI线程就处于Sleeping状态。

img_eaaeca40a9388e1b8c212152f992ac56.png
UI线程等待

Step1: 选中红色区域(CPU执行状态),可以看到如下统计信息:

Sleeping:表示线程处于睡眠态,显示白色

Runnable:表示线程处于可执行态显示蓝色

Running:表示线程处于运行态显示绿色

Uninterruptible Sleep: 一般表示IO操作

 从统计的信息可以看出Sleeping的时长99多ms

Step2:在CPU轴找出“白条较长”的区域,光标点击,并按M键选中,可以详细的看到该Sleeping的时长,线程信息等。

img_970ead48405e076c41571bafe6cb6c99.png

Step3:继续放到区域,可以看到在“白条区域”后面,紧接着一个“蓝条区域”,代表当前的UI线程从Sleeping态变化到了Runnable态(红色标注区域)

img_0042ae1545e5437cdb0d504e403edbff.png

Step4:点击Runnable区域,可以看到其详细信息(由于Runnable区域比较小,可以使用快捷键->,快速从Sleeping事件移动到Runnable事件);关键信息时:{wakeup from tid: 20704},可以知道UI线程被20704线程所唤醒。

img_d2d081458339a9e545bb9f17b7839175.png

Step5:搜索该线程信息:Comm:线程名称;Tid:线程id;Prio:线程优先级

img_6cb408614b11308c8ef9abdaa23af707.png
原文链接:https://yq.aliyun.com/articles/638357
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章