Описание
Предоставляет доступ к данным 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 | Возвращает имя метода и информацию о местоположении для указанного адреса метода. |

