RawFrameDataView.GetSampleMetadataAsLong
Declaration
public long GetSampleMetadataAsLong(int sampleIndex, int metadataIndex);Параметры
| Параметр | Описание |
|---|---|
| sampleIndex | Указатель образца Profiler. |
| metadataIndex | Указатель метаданных. |
Возвращаемое значение
длинный Возвращает длинное представление значения метаданных образца.
Описание
Возвращает значение метаданных сэмпла в формате long.
Используйте для получения дополнительных данных, связанных с выборкой. metadataIndex должно находиться в пределах от 0 до GetSampleMetadataCount.
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; } }