Highlights Profiler 模块显示有关应用程序是否满足其目标帧率以及其性能是否受 CPU 或 GPU 约束的信息。它有助于确定应用程序是受 CPU 限制还是受 GPU 限制,以及从何处开始调查潜在的性能问题。
默认情况下未启用此模块。要启用突出显示性能分析器模块,请参阅激活性能分析器模块
Highlights 图表会标记已超过应用程序目标帧率的所有帧。它将此信息显示在两条标记通道中:
| 值 | 描述 |
|---|---|
| CPU | 在 CPU 已超过目标帧时间的任何帧中显示红色标记 |
| GPU | 在 GPU 已超过目标帧时间的任何帧中显示黄色标记 |
将鼠标悬停在图表中的任何帧上可以查看帧的简短摘要,包括 CPU 和 GPU 的时间。
使用下拉选单为应用程序设置目标每秒帧数 (FPS)。从预设值中进行选择,或选择自定义 (Custom) 以设置自己的值。选择自定义 (Custom) 时,将打开性能分析器偏好参考 (Profiler Preferences) 窗口。
在 Highlights 图表中选择帧时,模块的详细信息 Details 视图会显示有关该帧的更多详细信息。
CPU 活动时间 (CPU Active Time) 和 GPU 时间 (GPU Time) 显示为相对于目标帧时间的条形图。要实现目标帧率,必须将 CPU 活动时间和 GPU 时间保持在目标帧时间以下。CPU 和 GPU 之所以各自都有完整的帧时间来完成其工作,原因是 Unity 引擎并行执行 CPU 和 GPU 工作以获得最佳性能。
选择一个图表分别打开 CPU 时间轴或帧调试器,即可开始性能调查。
CPU 活动时间是 CPU 工作所针对的帧内的持续时间。Unity 计算此值的方法是在主线程和渲染线程之间采用最长的线程持续时间,然后减去该线程花费的等待时间。
在主线程上,这意味着 Unity 会减去任何与__ VSync__垂直同步 (VSync) 是一种显示设置,可限制游戏帧频,使其与显示器的刷新率相匹配,以防止图像撕裂。
See in Glossary 相关的标记,这些标记不代表线程上的实际工作,例如计算线程活动时间的 WaitForTargetFPS 或 Gfx.WaitForPresentOnGfxThread。在渲染线程上,Unity 会减去标记 Gfx.WaitForGfxCommandsFromMainThread 指示的等待命令所花费的时间来计算线程的活动时间。
当渲染线程花费的时间超过主线程时,CPU 活动时间可能会长于 CPU 使用量模块的 Timeline 视图中显示的 CPU 时间值。这是因为 Timeline 视图在主线程上显示帧的开头和结尾。
GPU 时间是从向 GPU 发送第一个帧命令到 GPU 完成该帧工作之间的持续时间。
右侧面板中提供有关后续步骤以及从何处开始性能调查的指导。