Systrace的用法小结

  • 时间:
  • 浏览:0

<-:向左移动就说 我事件

查询UI守护进程的守候

traceBegin结束了了英语 英语 抓取,traceEnd结束了了英语 英语 抓取(都前要嵌套调用,让你一定是要成对冒出;另外注意下可能某个最好的办法节点冒出异常,会意味 顺序错乱,

一般,抓取SysTrace在User Debug的ROM版本,抓取的信息会非常完整性;可能算不算User Debug版本,都前要通过自定义Tag的最好的办法来富于信息。

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

就说 我当启动systrace的过后就会使用自定义的TAG了。如下所示:

Uninterruptible Sleep: 一般表示IO操作

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

S:缩小页面

耗时操作

Step4:点击Runnable区域,都前要看到其完整性信息(可能Runnable区域比较小,都前要使用快捷键->,快速从Sleeping事件移动到Runnable事件);关键信息时:{wakeup from tid: 20704},都前要知道UI守护进程被20704守护进程所唤醒。

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

Trace TAG

使用自定义TAG

Runnable:表示守护进程位于可执特征显示深紫色

通过SysTrace都前要帮助亲戚亲戚大伙分析性能大问提,所含最好的办法的耗时时长、CPU的使用情況、ANR、布局情況等;相比性能工具TraceView,主要用来分析每个最好的办法的执行时间,对于冷启动而言,想抓trace只有通过代码的最好的办法,就说 我会意味 整个应用比较卡顿,测试出的最好的办法时间,算不算真正的执行时间,只有看下时间长短的相对占比。而SysTrace工具,能帮助亲戚亲戚大伙处理抓取的最好的办法时间不真实大问提。

除了UI守护进程一种生活耗时外,有过后,亲戚亲戚大伙自身业务中多守护进程可能执行任务,会位于同步锁大问提,此时UI守护进程就位于Sleeping情況。

自定义TAG结果

Step2:在CPU轴找出“白条较长”的区域,光标点击,并按M键选中,都前要完整性的看到该Sleeping的时长,守护进程信息等。

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

->: 向右移动就说 我事件

上图都前要看出activityStart的执行时间较长,也就说 我app的冷启动时间较长。红色的F代表帧的绘制时间过长。

 从统计的信息都前要看出Sleeping的时长99多ms

自定义TAG

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

Trace.java

Systrace都前要查看最好的办法的执行时间,方便找出耗时操作,也都前要观察出帧的绘制时间。

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

自定义TAG

UI守护进程守候

Sleeping:表示守护进程位于睡眠态,显示白色

Step3:继续装到 区域,都前要看到在“白条区域”里面,紧接着就说 我“蓝条区域”,代表当前的UI守护进程从Sleeping态变化到了Runnable态(红色标注区域)

Trace.java中定义了如下TAG。

查找耗时操作:

A:左平移页面

D:右平移页面

Step1: 选中红色区域(CPU执行情況),都前要看到如下统计信息:

W: 放大页面

介绍了自定义TAG,快捷键,只有 到底该怎样分析trace文件呢?

M:快速选中区域可能撤出 选中区域

Running:表示守护进程位于运特征显示绿色