用于分析任意代码块的性能标记。
使用ProfilerMarker标记脚本代码块以供 Profiler 使用。
标记生成的信息显示在CPU Profiler中,也可以使用Recorder捕获。在开发过程中(在编辑器和开发版播放器中),这有助于了解游戏代码不同部分的性能概况并识别性能问题。
using Unity.Profiling;
public class MySystemClass { static readonly ProfilerMarker s_PreparePerfMarker = new ProfilerMarker("MySystem.Prepare"); static readonly ProfilerMarker s_SimulatePerfMarker = new ProfilerMarker(ProfilerCategory.Ai, "MySystem.Simulate");
public void UpdateLogic() { s_PreparePerfMarker.Begin(); // ... s_PreparePerfMarker.End();
using (s_SimulatePerfMarker.Auto()) { // ... } } }
ProfilerMarker表示一个命名的分析器句柄,是分析代码最有效的方式。它可以在作业化代码中使用。
方法Begin和End用 ConditionalAttribute 标记。它们会被有条件地编译掉,因此在非开发(发布)版本中开销为零。
当 Profiler 收集检测数据时,ProfilerMarker有助于降低开销并减少传输的数据量。Profiler.BeginSample将完整的字符串传输到数据流中,而ProfilerMarker.Begin和CustomSampler.Begin仅传输标记的整数标识符。
此外,ProfilerMarker.End为Recorder提供了上下文信息,使其能够在播放器中跟踪标记代码的计时。
其他资源:Recorder。
Handle | 获取 ProfilerMarker 的原生句柄。 |
ProfilerMarker | 为代码检测构建一个新的性能标记。 |