Unity 6.3
0 онлайн 63 гостей 3 в системе
Вход

ProfilerRecorderSample

структура в Unity.Profiling

Выполнено в:UnityEngine.CoreModule

Описание

ProfilerRecorder пример структуры данных.

Используется для получения значения конкретной выборки и количества подвыборок для накопленных значений.

using Unity.Profiling;
using UnityEngine;

public class FrameTimeScript : MonoBehaviour { ProfilerRecorder gcAllocCountPerFrameRecorder;

void OnEnable() { gcAllocCountPerFrameRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "GC.Alloc", // Set recorder buffer size 30, // Collect 30 values // Set buffer behavior to be round-robin ProfilerRecorderOptions.WrapAroundWhenCapacityReached | // 30 values become last 30 values // All samples in a frame will be summed up and put into a buffer as a single value ProfilerRecorderOptions.SumAllSamplesInFrame); // 30 last values become 30 last frame values of accumulated per-frame GC.Collect samples on all threads }

void OnDisable() { // Always dispose recorder when not needed to avoid memory leak and additional calculations gcAllocCountPerFrameRecorder.Dispose(); }

double CalculateAverageCountPerFrame(ProfilerRecorder r) { int count = r.Count; double acc = 0; for (var i = 0; i < count; ++i) { // Get the number of GC.Count samples that were accumulated per frame acc += r.GetSample(i).Count; } return count > 0 ? acc / count : 0; }

void OnGUI() { GUI.TextArea(new Rect(10, 30, 350, 20), $"GC.Alloc count: {CalculateAverageCountPerFrame(gcAllocCountPerFrameRecorder)}"); } }

Дополнительные ресурсы: ,ProfilerRecorder,, ,ProfilerRecorder.GetSample,.

Свойства

Свойство Описание
CountКоличество образцов.
ValueЗначение необработанной выборки.