Skip to content
阅读进度

Perfetto 中 Actual Timeline 和 Actual Present Time 能代表首帧吗? ​

返回 性能与稳定性 目录

标准回答 ​

可以用于定位某帧实际呈现,但不能单凭名称就认定它是目标页面的首帧。应先对应到目标应用窗口/图层和帧,再确认该帧呈现的是启动画面还是有效业务内容,以其实际呈现时间减去同一测量定义的起点;不能把 doFrame、onDraw 结束直接当成屏幕已显示。

通俗例子 ​

某帧 doFrame 已结束,但 GPU、合成或显示还没完成。分析首帧要结合目标窗口与 FrameTimeline,确认那帧是不是你关心的内容。

深入解释 ​

**几个终点怎样区分:**onDraw 表示 CPU 侧绘制逻辑执行,提交缓冲表示交出这一帧,合成与实际呈现则发生在后面。FrameTimeline 把预期和实际帧时间关联,帮助发现延迟与掉帧。

**怎样确认你找的是首帧:**先锁定目标窗口、图层与对应帧,再确认内容是启动外壳还是业务有效画面。不能把 Trace 中任意一个 Actual Present 时间当成所测页面的首帧。

易混淆点 ​

doFrame 结束不等于屏幕已经显示;启动预览窗口的帧也可能不是应用真实内容首帧。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。