用于分析任意代码块的性能标记。
使用 ProfilerMarker 标记 Profiler 的脚本代码块。\ 由标记生成的信息显示在 CPU Profiler 中,也可以使用 Recorder 捕获。在开发期间(在 Editor 和 Development Player 中),这有助于获得游戏代码的不同部分的性能概况并识别性能问题。
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 | Gets native handle of the ProfilerMarker. |
ProfilerMarker | 为代码检测构造一个新的性能标记。 |