应用区域
应用区域展示了采集数据时运行的所有进程,对于App来说,我们关心的是待测应用的进程,如图6.30所示。
图6.30 应用区域
在新版的Systrace中,系统对进程每次绘制的Frame都增加了一个带F的小圆圈标记。按住F键,即可将这一帧展开;按住M键,即可显示每一帧的总时间,如图6.31所示。
图6.31 查看单帧数据
同时,带F的小圆圈标记的颜色也代表着不同的含义。
- 绿色:该Frame绘制流畅。
- 黄色:该Frame绘制有小幅延迟。
- 红色:该Frame绘制严重延迟。
当显示该Frame绘制有问题时,系统在下面的提示框中也会显示具体的绘制时间、延迟原因,甚至会给出一些解决方案,如图6.32所示。
图6.32 提示解决方案
在应用的数据面板中,可以找到一些开发者非常熟悉的方法,例如performTraversals方法(该方法用于绘制整个View树),还可以看见绘制一个View树具体花费了多少时间,如图6.33所示。
图6.33 绘制详细
除了上面展示的关于ListView的性能卡顿提示外,还有一个非常常见的提示——Scheduling delay,如图6.34所示。
图6.34 性能提示信息
下面的系统分析提示:Scheduling delay,即调度延迟。当一帧的绘制时间超过19ms时,就会触发这个提示。当前图中的这一帧已经有20.264ms,因此触发了这个警告。Scheduling delay的主要原因是绘制线程在绘制的时候,在很长一段时间都没有分配到CPU时间片,从而无法继续绘制工作。当出现这个问题后,就需要检查当前CPU具体被分配到了哪些进程中,分析是哪些进程占用了过多的CPU时间而造成Scheduling delay。
