Описание
Предоставляет доступ к данным Profiler для определенного кадра и потока.
Используйте RawFrameDataView для извлечения неструктурированных выборок данных 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;
}
}
Смотрите так же: FrameDataView, HierarchyFrameDataView.
Публичные Методы
GetFlowEvents | Получает все события потока для текущего кадра и потока. |
GetSampleCallstack | Получает стек вызовов, связанный с указанным образцом. |
GetSampleCategoryIndex | Получает категорию маркера Profiler для конкретного образца. |
GetSampleChildrenCount | Получает количество дочерних образцов для определенного образца. |
GetSampleChildrenCountRecursive | Получает количество прямых и косвенных дочерних образцов для определенного образца. |
GetSampleFlags | Получает флаги маркеров Profiler для конкретного образца. |
GetSampleFlowEvents | Получает события потока, происходящие из определенного образца. |
GetSampleMarkerId | Получает идентификатор маркера Profiler, который однозначно идентифицирует имя образца. |
GetSampleMetadataAsDouble | Получает значение образца метаданных как двойное. |
GetSampleMetadataAsFloat | Получает образец значения метаданных в виде числа с плавающей запятой. |
GetSampleMetadataAsInt | Получает образец значения метаданных в виде целого числа. |
GetSampleMetadataAsLong | Получает образец значения метаданных длиной. |
GetSampleMetadataAsString | Получает образец значения метаданных в виде строки. |
GetSampleMetadataCount | Получает количество метаданных, связанных с конкретным образцом. |
GetSampleName | Получает имя конкретного образца. |
GetSampleStartTimeMs | Получает время начала выборки. Количество времени выражается в миллисекундах. |
GetSampleStartTimeNs | Получает время начала выборки. Количество времени выражается в наносекундах. |
GetSampleTimeMs | Получает продолжительность выборки. Количество времени выражается в миллисекундах. |
GetSampleTimeNs | Получает продолжительность выборки. Количество времени выражается в наносекундах. |
Унаследованные члены
Статические Свойства
invalidMarkerId | Идентификатор недопустимого маркера. |
Свойства
frameFps | Текущие кадры в секунду (FPS) для кадра. |
frameGpuTimeMs | Время кадра графического процессора в миллисекундах. |
frameGpuTimeNs | Количество кадров графического процессора в наносекундах. |
frameIndex | Индекс кадра для FrameDataView. |
frameStartTimeMs | Время начала кадра процессора в миллисекундах. |
frameStartTimeNs | Время начала кадра процессора в наносекундах. |
frameTimeMs | Количество кадров ЦП в миллисекундах. |
frameTimeNs | Время кадра процессора в наносекундах. |
maxDepth | Максимальные уровни дочерних образцов в данных потока. |
sampleCount | Количество выборок в кадре для потока. |
threadGroupName | Имя группы, к которой принадлежит поток. |
threadId | Постоянный идентификатор, связанный с потоком. |
threadIndex | Индекс потока в текущем кадре. |
threadName | Название темы. |
valid | Истинно после того, как данные кадра для потока обработаны и готовы к извлечению. |
Публичные Методы
GetAllCategories | Получает все доступные категории Profiler для текущего сеанса профилирования. |
GetCategoryInfo | Получает информацию о категории Profiler для заданного идентификатора категории. |
GetCounterValueAsDouble | Получает последнее значение маркера счетчика в кадре как двойной тип данных. |
GetCounterValueAsFloat | Получает последнее значение маркера счетчика в кадре как тип данных с плавающей запятой. |
GetCounterValueAsInt | Получает последнее значение маркера счетчика в кадре как тип данных int. |
GetCounterValueAsLong | Получает последнее значение маркера счетчика в кадре в виде длинного типа данных. |
GetCounterValuePtr | Получает небезопасный указатель на последнее значение маркера счетчика в кадре. |
GetFrameMetaData | Извлекает метаданные, связанные с фреймом. |
GetFrameMetaDataCount | Получает общее количество фрагментов метаданных для каждой пары идентификаторов и тегов в кадре. |
GetMarkerCategoryIndex | Получает категорию маркера Profiler для определенного идентификатора маркера. |
GetMarkerFlags | Получает флаги маркеров Profiler для определенного идентификатора маркера. |
GetMarkerId | Получить идентификатор маркера Profiler для определенного имени. |
GetMarkerMetadataInfo | Получает метаданные маркера Profiler для определенного идентификатора маркера. |
GetMarkerName | Получает имя маркера Profiler для определенного идентификатора маркера. |
GetMarkers | Получает все доступные маркеры для текущего сеанса профилирования. |
GetSessionMetaData | Извлекает метаданные сеанса, в котором этот кадр появился как NativeArray. |
GetSessionMetaDataCount | Получает общее количество фрагментов метаданных для каждой пары идентификаторов и тегов в сеансе Profiler. |
HasCounterValue | Возвращает значение true для маркера, который содержит счетчик в активном фрейме. |
ResolveMethodInfo | Возвращает имя метода и информацию о местоположении для указанного адреса метода. |