提供对特定帧和线程的性能分析器数据的访问。
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; } }
Additional resources: FrameDataView, HierarchyFrameDataView.
invalidSampleIndex | This constant defines a sample index that does not match any valid Profiler Sample. |
GetFlowEvents | Gets all flow events for the current frame and thread. |
GetSampleCallstack | Gets the callstack associated with the specified sample. |
GetSampleCategoryIndex | Gets Profiler marker category for the specific sample. |
GetSampleChildrenCount | Gets amount of child samples for the specific sample. |
GetSampleChildrenCountRecursive | Gets amount of direct and indirect child samples for the specific sample. |
GetSampleFlags | Gets Profiler marker flags for the specific sample. |
GetSampleFlowEvents | Gets the flow events that originate from the specific sample. |
GetSampleMarkerId | Gets Profiler marker indentifier which uniquely identifies sample name. |
GetSampleMetadataAsDouble | Gets sample metadata value as double. |
GetSampleMetadataAsFloat | Gets sample metadata value as float. |
GetSampleMetadataAsInt | Gets sample metadata value as integer. |
GetSampleMetadataAsLong | Gets sample metadata value as long. |
GetSampleMetadataAsSpan | Returns Span<T> representation of sample metadata. |
GetSampleMetadataAsString | Gets sample metadata value as string. |
GetSampleMetadataCount | Gets metadata count associated with the specific sample. |
GetSampleName | Gets the name of the specific sample. |
GetSampleStartTimeMs | Gets the start time of the sample. The amount of time is expressed in milliseconds. |
GetSampleStartTimeNs | Gets the start time of the sample. The amount of time is expressed in nanoseconds. |
GetSampleTimeMs | Gets the duration of sample. The amount of time is expressed in milliseconds. |
GetSampleTimeNs | Gets the duration of sample. The amount of time is expressed in nanoseconds. |
invalidMarkerId | Identifier of the invalid marker. |
invalidThreadId | This constant defines a thread id that does not match any valid thread's id. |
invalidThreadIndex | This constant defines a thread index that does not match any valid thread's index. |
frameFps | The current frames per second (FPS) for the frame. |
frameGpuTimeMs | GPU 帧时间量(以毫秒为单位)。 |
frameGpuTimeNs | The amount of GPU frame time in nanoseconds. |
frameIndex | The frame index for the FrameDataView. |
frameStartTimeMs | The start time of CPU frame in milliseconds. |
frameStartTimeNs | The start time of CPU frame in nanoseconds. |
frameTimeMs | CPU 帧时间量(以毫秒为单位)。 |
frameTimeNs | The amount of CPU frame time in nanoseconds. |
maxDepth | Maximum child samples levels in the thread data. |
sampleCount | The amount of samples in the frame for the thread. |
threadGroupName | 线程所属的组的名称。 |
threadId | 与线程关联的持久标识符。 |
threadIndex | 当前帧中的线程的索引。 |
threadName | 线程的名称。 |
valid | 在线程的帧数据已经过处理并准备好进行获取之后,为 True。 |
GetAllCategories | Gets all the available Profiler Categories for the current profiling session. |
GetCategoryInfo | Gets the Profiler category information for a given category ID. |
GetCounterValueAsDouble | Gets the last value of a counter marker in the frame as a double data type'. |
GetCounterValueAsFloat | Gets the last value of a counter marker in the frame as a float data type'. |
GetCounterValueAsInt | Gets the last value of a counter marker in the frame as an int data type'. |
GetCounterValueAsLong | Gets the last value of a counter marker in the frame as a long data type. |
GetCounterValuePtr | Gets unsafe pointer to the last value of a counter marker in the frame. |
GetFrameMetaData | 获取与帧关联的元数据。 |
GetFrameMetaDataCount | 获取帧中每个 ID 和标签 对的元数据块总数。 |
GetGfxResourceInfo | Gets information for a given graphics resource identifier. |
GetMarkerCategoryIndex | Gets Profiler marker category for the specific marker identifier. |
GetMarkerFlags | Gets Profiler marker flags for the specific marker identifier. |
GetMarkerId | Get Profiler marker identifier for a specific name. |
GetMarkerMetadataInfo | Gets Profiler marker metadata information for the specific marker identifier. |
GetMarkerName | Gets Profiler marker name for the specific marker identifier. |
GetMarkers | Gets all available markers for the current profiling session. |
GetSessionMetaData | Retrieves the metadata of the session this frame occurred in as a NativeArray. |
GetSessionMetaDataCount | Gets the total number of metadata chunks for each id and tag pair in the Profiler session. |
GetUnityObjectInfo | Gets the UnityEngine.Object information for a given Instance ID. |
GetUnityObjectNativeTypeInfo | Gets native Unity type intormation. |
GetUnityObjectNativeTypeInfoCount | Returns native types count in the capture. |
HasCounterValue | Returns true for a marker that includes a counter in the active frame. |
ResolveMethodInfo | 返回指定方法地址的方法名称和位置信息。 |