Version: 2022.3

Recorder.elapsedNanoseconds

切换到手册
public long elapsedNanoseconds ;

描述

前一帧的 Begin/End 对的累积时间(以纳秒为单位)。(只读)

持久操作(例如,在预加载线程上执行的操作)可能不会在单个帧内结束。在这种情况下,计算 **elapsedNanoseconds** 直到帧结束,以便您可以随时查看这些操作的活动。

using UnityEngine;
using UnityEngine.Profiling;

public class ExampleClass : MonoBehaviour { Recorder behaviourUpdateRecorder; void Start() { behaviourUpdateRecorder = Recorder.Get("BehaviourUpdate"); behaviourUpdateRecorder.enabled = true; }

void Update() { if (behaviourUpdateRecorder.isValid) Debug.Log("BehaviourUpdate time: " + behaviourUpdateRecorder.elapsedNanoseconds); } }

Use elapsedNanoseconds to retrieve timings of a code tagged with ProfilerMarker.Auto.

using UnityEngine;
using UnityEngine.Profiling;

public class Example { public static void TimeSynchronousMethodWithMarkers() { var recorder = Recorder.Get("MyMarker"); recorder.enabled = true; // Start measurements

// Call method which uses MyMarker // MyMethod();

recorder.enabled = false; // Stops measurements and makes data available immediately Debug.Log("MyMarker total time, ns: " + recorder.elapsedNanoseconds); } }

In synchronous measurements that don't involve a frame change, elapsedNanoseconds only becomes a non-zero value after the Recorder is disabled.