Описание
Маркер производительности, используемый для профилирования произвольных блоков кода.
Используйте ProfilerMarker, чтобы разметить блоки кода скрипта для Profiler. Информация, создаваемая маркерами, отображается в Профилировщике ЦП и может быть также захвачена с помощью Рекордера. Во время разработки (в Редакторе и Разработчиках) это может помочь получить обзор производительности различных частей игрового кода и выявить проблемы с производительностью.
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 отмечены с условным атрибутом. Они условно скомпилированы и, таким образом, имеют нулевые накладные расходы в сборках, отличных от Developmenet (Release).
Когда Profiler собирает инструментальные данные, ProfilerMarker помогает сократить накладные расходы и объем передаваемых данных. Profiler.BeginSample передает полную строку в поток данных, в то время как ProfilerMarker.Begin и CustomSampler.Begin единственный целочисленный идентификатор маркера.
Также ProfilerMarker.End предоставляет контекстную информацию для Recorder, что позволяет отслеживать тайминги отмеченного кода в Players.
Смотрите так же: Recorder.
Свойства
Handle | Получает собственный дескриптор ProfilerMarker. |
Конструкторы
ProfilerMarker | Создает новый маркер производительности для инструментирования кода. |
Публичные Методы
Auto | Создает вспомогательную структуру для блоков с использованием области действия. |
Begin | Начинает профилирование фрагмента кода, отмеченного пользовательским именем, определенным этим экземпляром ProfilerMarker. |
End | Завершает профилирование фрагмента кода, помеченного пользовательским именем, определенным этим экземпляром ProfilerMarker. |