版本:Unity 6 (6000.0)
语言:English
启用 FrameTimingManager
记录帧时序数据

获取帧时序数据

使用自定义分析器模块查看帧时序数据

要在自定义分析器一个帮助您优化游戏的窗口。它显示了在游戏各个区域花费的时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
参见 术语表
模块中查看帧时序数据

  1. 根据创建自定义分析器模块中的说明创建自定义分析器模块。
  2. 分析器模块编辑器窗口中,选择您的自定义模块。
  3. 可用计数器面板中,选择Unity
  4. 选择渲染以打开包含与内存使用相关的分析器计数器使用 ProfilerCounter API 在代码中放置,以跟踪指标,例如游戏中生成的敌人数量。 更多信息
    参见 术语表
    的子菜单,其中包括FrameTimingStats属性启用的那些计数器。然后,您可以单击子菜单中的相关计数器以将其添加到自定义模块中。

下表描述了启用帧时序统计信息后可用的每个计数器的用途

测量 描述
CPU 总帧时间 (毫秒) 以毫秒为单位的 CPU 总帧时间。Unity 将此计算为两帧结束之间的时间,包括任何开销或在帧之间等待花费的时间。
CPU 主线程帧时间 (毫秒) 以毫秒为单位的帧开始时间和主线程在该帧期间完成其工作的时间之间的时间。
CPU 主线程呈现等待时间 (毫秒) 在帧期间等待 Present() 的 CPU 时间。
CPU 渲染线程帧时间 (毫秒) 以毫秒为单位的渲染线程开始工作的时间和 Unity 调用 Present() 函数的时间之间的时间。
GPU 帧时间 (毫秒) 以毫秒为单位的 GPU 渲染单个帧的开始和结束之间的时间差。

从 FrameTimingManager C# API 检索时间戳数据

使用 FrameTimingManager API 访问时间戳信息。在每个变量中,FrameTimingManager 记录特定事件在帧期间发生的时序。

下表显示了通过 API 可用的值,按 Unity 在帧期间执行它们的顺序排列

属性 描述
frameStartTimestamp 帧开始时的 CPU 时钟时间。
firstSubmitTimestamp Unity 在此帧期间首次将作业提交到 GPU 时的 CPU 时钟时间。
cpuTimePresentCalled Unity 为当前帧调用 Present() 函数时的 CPU 时钟时间。
cpuTimeFrameComplete GPU 完成渲染帧并中断 CPU 时的 CPU 时钟时间。
启用 FrameTimingManager
记录帧时序数据