public int GetSampleMarkerId (int sampleIndex);

Parámetros

sampleIndexIndex of the Profiler sample.

Valor de retorno

int Returns Profiler marker indentifier. Returns invalidMarkerId for invalid index.

Descripción

Gets Profiler marker indentifier which uniquely identifies sample name.

The Profiler uses unique identifier for each marker created during profiling session. Marker can generate many samples which can be retrieved by RawFrameDataView.
All samples generated by the same marker have the same integer marker identifier and the same name.

Marker identifiers are persistent for the entire profiling session.

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; } }