Объявление
public int GetSampleMarkerId(int sampleIndex);Параметры
sampleIndex | Индекс образца Profiler. |
Возвращает
int Возвращает идентификатор маркера Profiler. Возвращает invalidMarkerId для недопустимого индекса.
Описание
Получает идентификатор маркера Profiler, который однозначно идентифицирует имя образца.
Профилировщик использует уникальный идентификатор для каждого маркера, созданного во время сеанса профилирования. Маркер может генерировать множество образцов, которые можно получить с помощью 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;
}
}
Смотрите так же: GetSampleName, FrameDataView.GetMarkerId, FrameDataView.GetMarkerName.