外观
Perfetto Trace 具体怎样定位卡顿或启动慢?
标准回答
先圈定异常时间段和目标帧,再看主线程是否运行、等待或未获调度;沿耗时切片、锁等待、Binder 和 I/O 找原因,同时看 RenderThread、GPU 与合成链路。Trace 用于建立因果证据,不只是截图一个“很长的块”。(FrameTimeline 与卡顿分析)
机制解释
主线程长时间 Running 可能是计算或布局;Runnable 很久可能是 CPU 竞争;同步 Binder 等待需要继续看远端;磁盘或锁等待需要找资源拥有者。为关键初始化和业务阶段添加 Trace 标记,有助于对齐自己的代码与系统事件。
延伸追问
Actual Timeline 很长就等于主线程一直执行吗?不是,它表达帧相关时间线,不能当作 CPU 执行时长。必须关联对应应用帧、显示帧与线程调度信息,判断错过的是哪个阶段。
内容来源
- Android 智能硬件 SDK 技术 Wiki · 原条目
Q58