Systrace的用法小结

  • 时间:
  • 浏览:1

除了UI多多线程 三种耗时外,有以前,人们自身业务中多多多线程 是原因执行任务,会位于同步锁间题,此时UI多多线程 就位于Sleeping情况汇报。

<-:向左移动有有有俩个 事件

在Activity的onCreate的结束了了英文和结束了了英文位置调用即可:

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

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

查找耗时操作:

traceBegin结束了了英文抓取,traceEnd结束了了英文抓取(都可否嵌套调用,但会 一定是要成对突然再次出现;另外注意下是原因某个最好的方法节点突然再次出现异常,会是原因顺序错乱,

Step1: 选中红色区域(CPU执行情况汇报),都可否看完如下统计信息:

自定义TAG结果

Trace.java中定义了如下TAG。

耗时操作

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

Uninterruptible Sleep: 一般表示IO操作

UI多多线程 等待图片

A:左平移页面

S:缩小页面

自定义TAG

->: 向右移动有有有俩个 事件

Trace.java

通过SysTrace都可否帮助人们分析性能间题,所含最好的方法的耗时时长、CPU的使用情况汇报、ANR、布局情况汇报等;相比性能工具TraceView,主要用来分析每个最好的方法的执行时间,对于冷启动而言,想抓trace必须通过代码的最好的方法,原来会是原因整个应用比较卡顿,测试出的最好的方法时间,都有真正的执行时间,必须看下时间长短的相对占比。而SysTrace工具,能帮助人们防止抓取的最好的方法时间不真实间题。

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

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

Systrace都可否查看最好的方法的执行时间,方便找出耗时操作,不都可否观察出帧的绘制时间。

Step2:在CPU轴找出“白条较长”的区域,光标点击,并按M键选中,都可否删剪的看完该Sleeping的时长,多多线程 信息等。

W: 放大页面

Running:表示多多线程 位于运形态学 显示绿色

M:快速选中区域是原因注销选中区域

查询UI多多线程 的等待图片

D:右平移页面

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

自定义TAG

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

Runnable:表示多多线程 位于可执形态学 显示浅绿色

原来当启动systrace的以前就会使用自定义的TAG了。如下所示:

Step3:继续放上去区域,都可否看完在“白条区域”底下,紧接着有有有俩个 “蓝条区域”,代表当前的UI多多线程 从Sleeping态变化到了Runnable态(红色标注区域)

Trace TAG

介绍了自定义TAG,快捷键,越来越 到底该如可分析trace文件呢?

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

使用自定义TAG

Step4:点击Runnable区域,都可否看完其删剪信息(是原因Runnable区域比较小,都可否使用快捷键->,快速从Sleeping事件移动到Runnable事件);关键信息时:{wakeup from tid: 20704},都可否知道UI多多线程 被20704多多线程 所唤醒。

一般,抓取SysTrace在User Debug的ROM版本,抓取的信息会非常删剪;是原因都有User Debug版本,都可否通过自定义Tag的最好的方法来富有信息。