上一篇文章我们介绍了 Systrace 的基础信息以及 trace 数据的抓取流程,这一篇主要介绍如何查看 Systrace 中的线程状态,如何对线程的唤醒信息进行分析,如何解读信息区的数据,以及介绍了常用的快捷键。
一、线程状态查看
上一篇文章提到 Systrace 会用不同的颜色来标识不同的线程状态,在每个方法上面都会有对应的线程状态来标识目前线程所处的状态,这里我们先来看一下线程的几个状态。
1、绿色:运行中(Running)
只有在该状态的线程才可能在 CPU 上运行。而同一时刻可能有多个线程处于可执行状态,这些线程的 task_struct 结构被放入对应 CPU 的可执行队列中(一个线程最多只能出现在一个 cpu 的可执行队列中)。调度器的任务就是从各个 CPU 的可执行队列中分别选择一个线程在该 CPU 上运行。
我们经常通过查看 Running 状态的线程,查看其运行的时间,与竞品做对比,分析快或者慢的原因: