Unity 6.3
0 онлайн 78 гостей 3 в системе
Вход

FrameDataView.GetMarkerId

Declaration

public int GetMarkerId(string markerName);

Параметры

Параметр Описание
markerName Имя маркера.

Возвращаемое значение

инт Возвращает идентификатор маркера в виде целого числа. Возвращает invalidMarkerId, если такой маркера в захвате нет.

Описание

Получить идентификатор маркеров Profiler для конкретного имени.

Используйте идентификатор маркера, чтобы избежать выделения памяти под строки при обходе данных 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,.