Systrace的用法小结

  • 时间:
  • 浏览:0
  • 来源:5分排列3APP下载_5分排列3APP官方

在Activity的onCreate的刚结速和刚结速位置调用即可:

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

->: 向右移动有有有另一一两个事件

除了UI守护线程一种 耗时外,有前一天,大伙儿自身业务中多守护线程意味着 执行任务,会位于同步锁现象,此时UI守护线程就位于Sleeping情况报告。

Trace TAG

自定义TAG

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

M:快速选中区域意味着 注销选中区域

Step1: 选中红色区域(CPU执行情况报告),还还能能 就看如下统计信息:

 从统计的信息还还能能 看出Sleeping的时长99多ms

traceBegin刚结速抓取,traceEnd刚结速抓取(还还能能 嵌套调用,或者一定是要成对再次经常出现;另外注意下意味着 某个方法节点再次经常出现异常,会意味着 顺序错乱,

Trace.java

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

Systrace还还能能 查看方法的执行时间,方便找出耗时操作,都上还还能能 观察出帧的绘制时间。

耗时操作

Uninterruptible Sleep: 一般表示IO操作

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

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

<-:向左移动有有有另一一两个事件

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

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

一般,抓取SysTrace在User Debug的ROM版本,抓取的信息会非常完整;意味着 有的是User Debug版本,还还能能 通过自定义Tag的方法来丰沛 信息。

Running:表示守护线程位于运结构显示绿色

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

那么 当启动systrace的前一天就会使用自定义的TAG了。如下所示:

Step3:继续放在区域,还还能能 就看在“白条区域”里面,紧接着有有有另一一两个“蓝条区域”,代表当前的UI守护线程从Sleeping态变化到了Runnable态(红色标注区域)

A:左平移页面

自定义TAG

D:右平移页面

W: 放大页面

使用自定义TAG

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

查找耗时操作:

Runnable:表示守护线程位于可执结构显示深蓝色

UI守护线程等待时间

S:缩小页面

自定义TAG结果

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

Trace.java中定义了如下TAG。

查询UI守护线程的等待时间

通过SysTrace还还能能 帮助大伙儿分析性能现象,中含方法的耗时时长、CPU的使用情况报告、ANR、布局情况报告等;相比性能工具TraceView,主要用来分析每个方法的执行时间,对于冷启动而言,想抓trace都还还能能 通过代码的方法,那么 会意味着 整个应用比较卡顿,测试出的方法时间,有的是真正的执行时间,都还还能能 看下时间长短的相对占比。而SysTrace工具,能帮助大伙儿补救抓取的方法时间不真实现象。