提供对特定帧和线程的 Profiler 数据的访问。
使用 HierarchyFrameDataView 以层次结构形式检索 Profiler 样本。
例如,这在 CPU 使用率 Profiler 的 层次结构模式 中使用。
HierarchyFrameDataView 使用时间和内存信息聚合数据。每个层次结构项都包含其子级的累积数据。
using System; using System.Collections.Generic; using UnityEditor.Profiling; using UnityEditorInternal;
public class Example { List<int> parentsCacheList = new List<int>(); List<int> childrenCacheList = new List<int>();
public void ProcessFrameData(int frame) { using (var frameData = ProfilerDriver.GetHierarchyFrameDataView(frame, 0, HierarchyFrameDataView.ViewModes.Default, HierarchyFrameDataView.columnGcMemory, false)) { int rootId = frameData.GetRootItemID(); frameData.GetItemDescendantsThatHaveChildren(rootId, parentsCacheList); foreach (int parentId in parentsCacheList) { frameData.GetItemChildren(parentId, childrenCacheList); // Process further records } } } }
columnCalls | 调用列。 |
columnDontSort | 指示是否禁用排序的列标识符。 |
columnGcMemory | 样本中托管分配的数量。 |
columnName | Profiler 样本名称列。 |
columnObjectName | 对象名称列。 |
columnSelfPercent | Unity 在样本本身(不包括子样本的时间)中花费的 CPU 时间的百分比。 |
columnSelfTime | Unity 在样本本身(不包括子样本的时间)中花费的 CPU 时间(以毫秒为单位)。 |
columnStartTime | 调用的开始时间(以毫秒为单位)。 |
columnTotalPercent | Unity 在样本(包括子样本的时间)中花费的 CPU 时间的百分比。 |
columnTotalTime | Unity 在样本(包括子样本的时间)中花费的 CPU 时间(以毫秒为单位)。 |
columnWarningCount | 位于性能不佳的代码执行路径中的样本数量。 |
invalidSampleId | 无效项的索引。 |
sortColumn | 定义排序列的列标识符。 |
sortColumnAscending | 排序顺序是升序(true)还是降序(false)。 |
viewMode | 定义数据聚合方式的视图模式。 |
invalidMarkerId | 无效标记的标识符。 |
invalidThreadId | 此常量定义与任何有效线程的 ID 不匹配的线程 ID。 |
invalidThreadIndex | 此常量定义与任何有效线程的索引不匹配的线程索引。 |
frameFps | 帧的当前帧率 (FPS)。 |
frameGpuTimeMs | GPU 帧时间(以毫秒为单位)。 |
frameGpuTimeNs | GPU 帧时间(以纳秒为单位)。 |
frameIndex | FrameDataView 的帧索引。 |
frameStartTimeMs | CPU 帧的开始时间(以毫秒为单位)。 |
frameStartTimeNs | CPU 帧的开始时间(以纳秒为单位)。 |
frameTimeMs | CPU 帧时间(以毫秒为单位)。 |
frameTimeNs | CPU 帧时间(以纳秒为单位)。 |
maxDepth | 线程数据中的最大子样本级别。 |
sampleCount | 线程的帧中的样本数量。 |
threadGroupName | 线程所属组的名称。 |
threadId | 与线程关联的持久标识符。 |
threadIndex | 当前帧中线程的索引。 |
threadName | 线程的名称。 |
valid | 在处理完线程的帧数据并准备检索后为真。 |
GetAllCategories | 获取当前性能分析会话中所有可用的 Profiler 类别。 |
GetCategoryInfo | 获取给定类别 ID 的 Profiler 类别信息。 |
GetCounterValueAsDouble | 获取帧中计数器标记的最后一个值,以双精度数据类型表示。 |
GetCounterValueAsFloat | 获取帧中计数器标记的最后一个值,以浮点数据类型表示。 |
GetCounterValueAsInt | 获取帧中计数器标记的最后一个值,以 int 数据类型表示。 |
GetCounterValueAsLong | 获取帧中计数器标记的最后一个值,以 long 数据类型表示。 |
GetCounterValuePtr | 获取指向帧中计数器标记的最后一个值的非安全指针。 |
GetFrameMetaData | 检索与帧关联的元数据。 |
GetFrameMetaDataCount | 获取帧中每个 ID 和标签对的元数据块总数。 |
GetGfxResourceInfo | 获取给定图形资源标识符的信息。 |
GetMarkerCategoryIndex | 获取特定标记标识符的 Profiler 标记类别。 |
GetMarkerFlags | 获取特定标记标识符的 Profiler 标记标志。 |
GetMarkerId | 获取特定名称的 Profiler 标记标识符。 |
GetMarkerMetadataInfo | 获取特定标记标识符的 Profiler 标记元数据信息。 |
GetMarkerName | 获取特定标记标识符的 Profiler 标记名称。 |
GetMarkers | 获取当前性能分析会话中所有可用的标记。 |
GetSessionMetaData | 检索此帧所在的会话的元数据作为 NativeArray。 |
GetSessionMetaDataCount | 获取 Profiler 会话中每个 ID 和标签对的元数据块总数。 |
GetUnityObjectInfo | 获取给定 Instance ID 的 UnityEngine.Object 信息。 |
GetUnityObjectNativeTypeInfo | 获取本机 Unity 类型信息。 |
GetUnityObjectNativeTypeInfoCount | 返回捕获中的本机类型计数。 |
HasCounterValue | 对于在活动帧中包含计数器的标记返回 true。 |
ResolveMethodInfo | 返回指定方法地址的方法名称和位置信息。 |