Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

ProfilerRecorder

структура в Unity.Profiling / Реализовано в: UnityEngine.CoreModule

Описание

Записывает данные метрики Profiler, которые создает маркер или счетчик Profiler.

Используйте ProfilerRecorder для доступа к показателям производительности, предоставляемым Profiler. Вы можете использовать его для унифицированного чтения данных счетчика Profiler, таких как память или статистика рендеринга, а также данных синхронизации маркеров Profiler.

Вы можете использовать этот API в сборках Editor и Player, включая Release Players. Используйте ProfilerRecorderHandle.GetAvailable, чтобы получить полный список поддерживаемых метрик. Список доступных встроенных маркеров Profiler см. в документации руководства пользователя по маркерам Profiler, модуль Rendering Profiler и модуль Virtual Texturing Profiler.

The following example demonstrates how you can use ProfilerRecorder to get memory and timing statistics.

using System.Collections.Generic; using System.Text; using Unity.Profiling; using UnityEngine;

public class ExampleScript : MonoBehaviour { string statsText; ProfilerRecorder systemMemoryRecorder; ProfilerRecorder gcMemoryRecorder; ProfilerRecorder mainThreadTimeRecorder;

static double GetRecorderFrameAverage(ProfilerRecorder recorder) { var samplesCount = recorder.Capacity; if (samplesCount == 0) return 0;

double r = 0; unsafe { var samples = stackalloc ProfilerRecorderSample[samplesCount]; recorder.CopyTo(samples, samplesCount); for (var i = 0; i < samplesCount; ++i) r += samples[i].Value; r /= samplesCount; }

return r; }

void OnEnable() { systemMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "System Used Memory"); gcMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "GC Reserved Memory"); mainThreadTimeRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Internal, "Main Thread", 15); }

void OnDisable() { systemMemoryRecorder.Dispose(); gcMemoryRecorder.Dispose(); mainThreadTimeRecorder.Dispose(); }

void Update() { var sb = new StringBuilder(500); sb.AppendLine($"Frame Time: {GetRecorderFrameAverage(mainThreadTimeRecorder) * (1e-6f):F1} ms"); sb.AppendLine($"GC Memory: {gcMemoryRecorder.LastValue / (1024 * 1024)} MB"); sb.AppendLine($"System Memory: {systemMemoryRecorder.LastValue / (1024 * 1024)} MB"); statsText = sb.ToString(); }

void OnGUI() { GUI.TextArea(new Rect(10, 30, 250, 50), statsText); } }

Note:
ProfilerRecorder выделяет неуправляемые ресурсы и реализует интерфейс IDisposable. Используйте Dispose для освобождения ресурсов, когда вам больше не нужно записывать статистику.

ProfilerRecorder предоставляет доступ к показателям Unity в двух режимах: немедленный доступ к значению счетчика и к значению счетчика по окончании кадра. Смотрите так же: CurrentValue, LastValue, GetSample, ProfilerRecorderHandle.GetAvailable.

Свойства

Capacity Максимальное количество образцов, которое ProfilerRecorder может захватить.
Count Количество собранных образцов.
CurrentValue Получает текущее значение метрики Profiler.
CurrentValueAsDouble Получает текущее значение метрики Profiler в виде двойного значения.
DataType Тип данных значения метрики Profiler.
IsRunning Указывает, подключен ли ProfilerRecorder к метрике Profiler.
LastValue Получает последнее значение, собранное ProfilerRecorder.
LastValueAsDouble Получает последнее значение, собранное ProfilerRecorder, как двойное.
UnitType Тип объекта.
Valid Указывает, связан ли ProfilerRecorder с допустимым маркером или счетчиком Profiler.
WrappedAround Указывает, превышена ли емкость ProfilerRecorder.

Конструкторы

ProfilerRecorder Создает экземпляр ProfilerRecorder с именем и категорией метрики Profiler..

Публичные Методы

CopyTo Копирует собранные образцы в целевой массив.
Dispose Выпускает неуправляемый экземпляр ProfilerRecorder.
GetSample Получает образцы данных.
Reset Очищает собранные образцы.
Start Начать сбор данных.
Stop Прекращает сбор данных.
ToArray Используйте для преобразования собранных образцов в массив.

Статические Методы

StartNew Инициализируйте новый экземпляр ProfilerRecorder и начните сбор данных.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3