提供对特定帧和线程的性能分析器数据的访问。
使用 HierarchyFrameDataView 可获取结构为层级视图的性能分析器样本。
例如,这可用于 CPU 使用率性能分析器的 Hierachy mode。
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 | GC 分配列。 |
columnName | 性能分析器样本名称列。 |
columnObjectName | 对象名称列。 |
columnSelfPercent | CPU 在调用本身中花费的时间百分比。 |
columnSelfTime | CPU 在调用本身中花费的时间量。该时间量以毫秒为单位进行表示。 |
columnStartTime | 调用的开始时间(以毫秒为单位)。 |
columnTotalPercent | CPU 在调用层级中花费的时间百分比。 |
columnTotalTime | CPU 在调用层级中花费的时间量。该时间量以毫秒为单位进行表示。 |
columnWarningCount | 对于性能是次优的代码执行路径中的样本量。 |
invalidSampleId | 无效项的索引。 |
frameFps | 帧的当前每秒帧数 (fps)。 |
frameGpuTimeMs | GPU 帧时间量(以毫秒为单位)。 |
frameIndex | HierarchyFrameDataView 的帧索引。 |
frameTimeMs | CPU 帧时间量(以毫秒为单位)。 |
sortColumn | 定义排序列的列标识符。 |
sortColumnAscending | 排序顺序是升序 (true) 还是降序 (false)。 |
threadGroupName | 线程所属的组的名称。 |
threadId | 与线程关联的持久标识符。 |
threadIndex | 当前帧中的线程的索引。 |
threadName | 线程的名称。 |
valid | 在线程的帧数据已经过处理并准备好进行获取之后,为 True。 |
viewMode | 定义如何汇总数据的视图模式。 |
GetFrameMetaData | 获取与帧关联的元数据。 |
GetFrameMetaDataCount | 获取帧中每个 ID 和标签 对的元数据块总数。 |
GetItemAncestors | 获取层级视图项祖先的列表。 |
GetItemCallstack | 获取与指定层级视图项关联的调用栈。 |
GetItemChildren | 获取层级视图项的子项的列表。 |
GetItemColumnData | 返回与列关联的层级视图项值的字符串表示形式。 |
GetItemColumnDataAsDouble | 返回与列关联的层级视图项值的双精度值表示形式。 |
GetItemColumnDataAsFloat | 返回与列关联的层级视图项值的浮点值表示形式。 |
GetItemColumnDataAsSingle | 返回与列关联的层级视图项值的浮点值表示形式。 |
GetItemDepth | 返回项的层级视图级别。 |
GetItemDescendantsThatHaveChildren | 用于获取具有其他子项的层级视图项后代的列表。 |
GetItemInstanceID | 返回与样本关联的 UnityEngine.Object 的 InstanceID。 |
GetItemMarkerFlags | 用于获取标记的用途标志。 |
GetItemMarkerID | 返回唯一标识样本名称的性能分析器标记。 |
GetItemMarkerIDPath | 用于获取所有层级视图项父项的标记的标识符列表。 |
GetItemMergedSampleCallstack | 获取与指定层级视图项关联的调用栈。 |
GetItemMergedSamplesColumnData | 用于获取层级视图项的合并样本的值。 |
GetItemMergedSamplesColumnDataAsFloats | 获取特定层级视图项的合并样本。合并样本通过 outValues 参数,作为浮点值列表返回。 |
GetItemMergedSamplesCount | 返回层级视图项所表示的合并样本数量。 |
GetItemMergedSamplesInstanceID | 获取与层级视图项对应的合并样本的 instanceID。 |
GetItemMetadata | 返回层级视图项元数据值的字符串表示形式。 |
GetItemMetadataAsFloat | 返回层级视图项元数据值的浮点值表示形式。 |
GetItemMetadataAsLong | 返回层级视图项元数据值的长整型表示形式。 |
GetItemMetadataCount | 返回与层级视图项关联的元数据数量。 |
GetItemName | 获取与项关联的样本名称。 |
GetItemPath | 获取字符串形式的层级视图项路径。每个级别由正斜杠(“/”)分隔。 |
GetRootItemID | 获取根树项的标识符。 |
HasItemChildren | 检查树项是否具有子项。 |
ResolveItemCallstack | 获取与指定层级视图项关联的调用栈。 |
ResolveItemMergedSampleCallstack | 获取与特定项样本关联的调用栈。 |
ResolveMethodInfo | 返回指定方法地址的方法名称和位置信息。 |
Sort | 对层级视图排序。 |