版本: Unity 6 (6000.0)
语言English
  • C#

ProfilerMarker

Unity.Profiling 中的结构体

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

用于分析任意代码块的性能标记。

使用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表示一个命名的分析器句柄,是分析代码最有效的方式。它可以在作业化代码中使用。
方法BeginEnd用 ConditionalAttribute 标记。它们会被有条件地编译掉,因此在非开发(发布)版本中开销为零。

当 Profiler 收集检测数据时,ProfilerMarker有助于降低开销并减少传输的数据量。Profiler.BeginSample将完整的字符串传输到数据流中,而ProfilerMarker.BeginCustomSampler.Begin仅传输标记的整数标识符。

此外,ProfilerMarker.EndRecorder提供了上下文信息,使其能够在播放器中跟踪标记代码的计时。

其他资源:Recorder

属性

Handle获取 ProfilerMarker 的原生句柄。

构造函数

ProfilerMarker为代码检测构建一个新的性能标记。

公共方法

Auto为作用域 using 块创建辅助结构体。
Begin开始分析用此 ProfilerMarker 实例定义的自定义名称标记的代码段。
End结束分析用此 ProfilerMarker 实例定义的自定义名称标记的代码段。