要在 Custom Profiler 模块中查看帧时序数据,请执行以下操作:
下表描述了启用 Frame Timing Stats 时可用的每个计数器的用途:
| 测量 | 描述 |
|---|---|
| CPU 总帧时间 (ms) | 总 CPU 帧时间(以毫秒为单位)。Unity 以两帧结束之间的时间计算该数据,包括任何开销或两帧之间等待的时间。 |
| CPU 主线程帧时间 (ms) | 从帧开始到主线程完成其在该帧期间执行的工作之间的时间(以毫秒为单位)。 |
| CPU 主线程当前等待时间 (ms) | 在帧期间等待 Present() 所用的 CPU 时间。 |
| CPU 渲染线程帧时间 (ms) | 从渲染线程开始运行到 Unity 调用 Present() 函数之间的时间(以毫秒为单位)。 |
| GPU 帧时间 (ms) | GPU 渲染单帧的开始到结束的时间差,以毫秒为单位。 |
使用 FrameTimingManager API 可以访问时间戳信息。在每个变量中,FrameTimingManager 都会记录一帧内特定事件发生的时间。
下表按 Unity 在一帧内执行值的顺序列出了 API 可用的值:
| 属性 | 描述 |
|---|---|
| frameStartTimestamp | 帧开始时的 CPU 时钟时间。 |
| firstSubmitTimestamp | Unity 在此帧中将第一个任务提交到 GPU 时的 CPU 时钟时间。 |
| cpuTimePresentCalled | Unity 为当前帧调用 Present() 函数的 CPU 时钟时间。 |
| cpuTimeFrameComplete | GPU 完成帧渲染并中断 CPU 的 CPU 时钟时间。 |