Version: 2021.1

RawFrameDataView

class in UnityEditor.Profiling

/

继承自:Profiling.FrameDataView

切换到手册

描述

提供对特定帧和线程的性能分析器数据的访问。

Use RawFrameDataView to retrieve unstructured Profiler samples data for the particular frame.
The order of samples is determined by the order they are generated in the code.

RawFrameDataView can quickly iterate over all samples in the frame without any internal allocations.

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

静态变量

invalidSampleIndexThis constant defines a sample index that does not match any valid Profiler Sample.

公共函数

GetFlowEventsGets all flow events for the current frame and thread.
GetSampleCallstackGets the callstack associated with the specified sample.
GetSampleCategoryIndexGets Profiler marker category for the specific sample.
GetSampleChildrenCountGets amount of child samples for the specific sample.
GetSampleChildrenCountRecursiveGets amount of direct and indirect child samples for the specific sample.
GetSampleFlagsGets Profiler marker flags for the specific sample.
GetSampleFlowEventsGets the flow events that originate from the specific sample.
GetSampleMarkerIdGets Profiler marker indentifier which uniquely identifies sample name.
GetSampleMetadataAsDoubleGets sample metadata value as double.
GetSampleMetadataAsFloatGets sample metadata value as float.
GetSampleMetadataAsIntGets sample metadata value as integer.
GetSampleMetadataAsLongGets sample metadata value as long.
GetSampleMetadataAsStringGets sample metadata value as string.
GetSampleMetadataCountGets metadata count associated with the specific sample.
GetSampleNameGets the name of the specific sample.
GetSampleStartTimeMsGets the start time of the sample. The amount of time is expressed in milliseconds.
GetSampleStartTimeNsGets the start time of the sample. The amount of time is expressed in nanoseconds.
GetSampleTimeMsGets the duration of sample. The amount of time is expressed in milliseconds.
GetSampleTimeNsGets the duration of sample. The amount of time is expressed in nanoseconds.

继承的成员

静态变量

invalidMarkerIdIdentifier of the invalid marker.
invalidThreadIdThis constant defines a thread id that does not match any valid thread's id.
invalidThreadIndexThis constant defines a thread index that does not match any valid thread's index.

变量

frameFpsThe current frames per second (FPS) for the frame.
frameGpuTimeMsGPU 帧时间量(以毫秒为单位)。
frameGpuTimeNsThe amount of GPU frame time in nanoseconds.
frameIndexThe frame index for the FrameDataView.
frameStartTimeMsThe start time of CPU frame in milliseconds.
frameStartTimeNsThe start time of CPU frame in nanoseconds.
frameTimeMsCPU 帧时间量(以毫秒为单位)。
frameTimeNsThe amount of CPU frame time in nanoseconds.
maxDepthMaximum child samples levels in the thread data.
sampleCountThe amount of samples in the frame for the thread.
threadGroupName线程所属的组的名称。
threadId与线程关联的持久标识符。
threadIndex当前帧中的线程的索引。
threadName线程的名称。
valid在线程的帧数据已经过处理并准备好进行获取之后,为 True。

公共函数

GetAllCategoriesGets all the available Profiler Categories for the current profiling session.
GetCategoryInfoGets the Profiler category information for a given category ID.
GetCounterValueAsDoubleGets the last value of a counter marker in the frame as a double data type'.
GetCounterValueAsFloatGets the last value of a counter marker in the frame as a float data type'.
GetCounterValueAsIntGets the last value of a counter marker in the frame as an int data type'.
GetCounterValueAsLongGets the last value of a counter marker in the frame as a long data type.
GetCounterValuePtrGets unsafe pointer to the last value of a counter marker in the frame.
GetFrameMetaData获取与帧关联的元数据。
GetFrameMetaDataCount获取帧中每个 ID 和标签 对的元数据块总数。
GetMarkerCategoryIndexGets Profiler marker category for the specific marker identifier.
GetMarkerFlagsGets Profiler marker flags for the specific marker identifier.
GetMarkerIdGet Profiler marker identifier for a specific name.
GetMarkerMetadataInfoGets Profiler marker metadata information for the specific marker identifier.
GetMarkerNameGets Profiler marker name for the specific marker identifier.
GetMarkersGets all available markers for the current profiling session.
HasCounterValueReturns true for a marker that includes a counter in the active frame.
ResolveMethodInfo返回指定方法地址的方法名称和位置信息。