RawFrameDataView

class in UnityEditor.Profiling

/

Inherits from:Profiling.FrameDataView

Switch to Manual

Description

Provides access to the Profiler data for a specific frame and thread.

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

Public Functions

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 flow events which are originating 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.

Inherited members

Static Variables

invalidMarkerIdIdentifier of the invalid marker.

Variables

frameFpsThe current frames per second (FPS) for the frame.
frameGpuTimeMsThe amount of GPU frame time in milliseconds.
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.
frameTimeMsThe amount of CPU frame time in milliseconds.
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.
threadGroupNameThe name of the group that the thread belongs to.
threadIdPersistent identifier associated with the thread.
threadIndexThe index of the thread in the current frame.
threadNameName of the thread.
validTrue after the frame data for the thread is processed and ready for retrieval.

Public Functions

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.
GetFrameMetaDataRetrieves metadata associated with the frame.
GetFrameMetaDataCountGets the total number of metadata chunks for each id and tag pair in the frame.
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.
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.
ResolveMethodInfoReturns method name and location information for the specified method address.