Объявление
public int GetMarkerId(string markerName);Параметры
markerName | Имя маркера. |
Возвращает
int Возвращает идентификатор маркера в виде целого числа. Возвращает invalidMarkerId, если в захвате нет такого маркера.
Описание
Получить идентификатор маркера Profiler для определенного имени.
Используйте идентификатор маркера, чтобы избежать выделения строк при просмотре данных Profiler.
Профилировщик использует уникальный идентификатор для каждого маркера, который он создает во время сеанса профилирования. Маркеры могут генерировать множество образцов, к которым HierarchyFrameDataView и RawFrameDataView могут получить доступ. Все сэмплы, генерируемые одним и тем же маркером, имеют одинаковый целочисленный идентификатор маркера и одно и то же имя.
Идентификаторы маркеров сохраняются на протяжении всего сеанса профилирования.
using System;
using Unity.Collections;
using UnityEditor.Profiling;
using UnityEditorInternal;
using UnityEngine;
using UnityEngine.Profiling;
public class Example
{
public static long GetGCAllocs(int frameIndex)
{
long totalGcAllocSize = 0;
int gcAllocMarkerId = FrameDataView.invalidMarkerId;
for (int threadIndex = 0;; ++threadIndex)
{
using (RawFrameDataView frameData = ProfilerDriver.GetRawFrameDataView(frameIndex, threadIndex))
{
if (!frameData.valid)
break;
if (gcAllocMarkerId == FrameDataView.invalidMarkerId)
{
gcAllocMarkerId = frameData.GetMarkerId("GC.Alloc");
if (gcAllocMarkerId == FrameDataView.invalidMarkerId)
break;
}
int sampleCount = frameData.sampleCount;
for (int i = 0; i < sampleCount; ++i)
{
if (gcAllocMarkerId != frameData.GetSampleMarkerId(i))
continue;
long gcAllocSize = frameData.GetSampleMetadataAsLong(i, 0);
totalGcAllocSize += gcAllocSize;
}
}
}
return totalGcAllocSize;
}
}
Смотрите так же: GetMarkerName, HierarchyFrameDataView.GetItemMarkerID, RawFrameDataView.GetSampleMarkerId.