版本:Unity 6 (6000.0)
语言:英语
帧计时器
启用 FrameTimingManager

帧计时器简介

FrameTimingManager 是一个 API,它可以捕获应用程序中单个帧性能的详细计时数据。您可以使用这些数据评估这些帧以了解应用程序为何无法满足性能目标。

如果需要,请使用 FrameTimingManager

帧计时不会取代 分析器帮助您优化游戏的窗口。它显示了游戏各个区域所花费的时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
参见 术语表
中的数据;在您对应用程序进行高级分析后,使用 FrameTimingManager 检查特定细节。FrameTimingManager 在记录数据时会降低性能,因此它无法准确衡量应用程序的性能。

平台支持

属性 描述 支持 注释
Windows DirectX 11
DirectX 12
OpenGL
Vulkan
macOS Metal 由于基于平铺的延迟渲染 GPU 的行为,可能会报告比总帧时间更大的 GPU 时间测量值。
Linux OpenGL 部分 不支持 GPU 时间测量。
Vulkan
Android OpenGL ES
Vulkan
iOS Metal 由于基于平铺的延迟渲染 GPU 的行为,可能会报告比总帧时间更大的 GPU 时间测量值。
tvOS Metal 由于基于平铺的延迟渲染 GPU 的行为,可能会报告比总帧时间更大的 GPU 时间测量值。
WebGL一个 JavaScript API,可在 Web 浏览器中渲染 2D 和 3D 图形。Unity Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,这些程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。 更多信息
参见 术语表
WebGL 部分 不支持 GPU 时间测量。

FrameTimingManager 的工作原理

FrameTimingManager 会以四帧的延迟提供结果。这是因为计时结果在每帧结束时无法立即获得,因此 FrameTimingManager 会等待获取该帧的 CPU 和 GPU 数据。

延迟不能保证准确的计时结果,因为 GPU 可能没有可用资源来返回结果,或者可能无法正确返回结果。

FrameTimingManger 在某些情况下会更改其生成 FrameTimeComplete 时间戳的方式

  • 如果 GPU 支持 GPU 时间戳,则 GPU 会提供 FrameTimeComplete 时间戳。
  • 如果 GPU 不支持 GPU 时间戳并返回 GPU 时间,则 FrameTimingManager 会计算 gpuFrameTime 的值。该值是报告的 GPU 时间和 FirstSubmitTimestamp 值的总和。
  • 如果 GPU 不支持 GPU 时间戳并且不返回 GPU 时间,则 FrameTimingManager 会将 PresentTimestamp 的值设置为 FrameTimeComplete 的值。

其他资源

帧计时器
启用 FrameTimingManager