版本: Unity 6 (6000.0)
语言English
  • C#

RawFrameDataView

UnityEditor.Profiling 中的类

/

继承自:Profiling.FrameDataView

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交的内容,但我们会阅读用户提出的每个修改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

提供对特定帧和线程的 Profiler 数据的访问。

使用 RawFrameDataView 检索特定帧的非结构化 Profiler 样本数据。
样本的顺序由它们在代码中生成的顺序决定。

RawFrameDataView 可以快速迭代帧中的所有样本,而无需任何内部分配。

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

静态属性

invalidSampleIndex此常量定义一个样本索引,该索引与任何有效的 Profiler 样本都不匹配。

公共方法

GetFlowEvents获取当前帧和线程的所有流事件。
GetSampleCallstack获取与指定样本关联的调用堆栈。
GetSampleCategoryIndex获取特定样本的 Profiler 标记类别。
GetSampleChildrenCount获取特定样本的子样本数量。
GetSampleChildrenCountRecursive获取特定样本的直接和间接子样本数量。
GetSampleFlags获取特定样本的 Profiler 标记标志。
GetSampleFlowEvents获取源自特定样本的流事件。
GetSampleMarkerId获取唯一标识样本名称的 Profiler 标记标识符。
GetSampleMetadataAsDouble将样本元数据值作为双精度浮点数获取。
GetSampleMetadataAsFloat将样本元数据值作为单精度浮点数获取。
GetSampleMetadataAsInt将样本元数据值作为整数获取。
GetSampleMetadataAsLong将样本元数据值作为长整数获取。
GetSampleMetadataAsSpan返回样本元数据的 Span<T> 表示形式。
GetSampleMetadataAsString将样本元数据值作为字符串获取。
GetSampleMetadataCount获取与特定样本关联的元数据计数。
GetSampleName获取特定样本的名称。
GetSampleStartTimeMs获取样本的开始时间。时间量以毫秒表示。
GetSampleStartTimeNs获取样本的开始时间。时间量以纳秒表示。
GetSampleTimeMs获取样本的持续时间。时间量以毫秒表示。
GetSampleTimeNs获取样本的持续时间。时间量以纳秒表示。

继承的成员

静态属性

invalidMarkerId无效标记的标识符。
invalidThreadId此常量定义一个线程 ID,该 ID 与任何有效线程的 ID 都不匹配。
invalidThreadIndex此常量定义一个线程索引,该索引与任何有效线程的索引都不匹配。

属性

frameFps帧的当前每秒帧数 (FPS)。
frameGpuTimeMsGPU 帧时间量(以毫秒为单位)。
frameGpuTimeNsGPU 帧时间量(以纳秒为单位)。
frameIndexFrameDataView 的帧索引。
frameStartTimeMsCPU 帧的开始时间(以毫秒为单位)。
frameStartTimeNsCPU 帧的开始时间(以纳秒为单位)。
frameTimeMsCPU 帧时间量(以毫秒为单位)。
frameTimeNsCPU 帧时间量(以纳秒为单位)。
maxDepth线程数据中的最大子样本级别。
sampleCount线程帧中的样本数量。
threadGroupName线程所属组的名称。
threadId与线程关联的持久标识符。
threadIndex当前帧中线程的索引。
threadName线程的名称。
valid线程的帧数据处理完毕并准备好检索后为 True。

公共方法

GetAllCategories获取当前性能分析会话中所有可用的 Profiler 类别。
GetCategoryInfo获取给定类别 ID 的 Profiler 类别信息。
GetCounterValueAsDouble将帧中计数器标记的最后一个值作为双精度浮点数数据类型获取。
GetCounterValueAsFloat将帧中计数器标记的最后一个值作为单精度浮点数数据类型获取。
GetCounterValueAsInt将帧中计数器标记的最后一个值作为 int 数据类型获取。
GetCounterValueAsLong将帧中计数器标记的最后一个值作为长整数数据类型获取。
GetCounterValuePtr获取指向帧中计数器标记的最后一个值的非安全指针。
GetFrameMetaData检索与帧关联的元数据。
GetFrameMetaDataCount获取帧中每个 id 和标签对的元数据块的总数。
GetGfxResourceInfo获取给定图形资源标识符的信息。
GetMarkerCategoryIndex获取特定标记标识符的 Profiler 标记类别。
GetMarkerFlags获取特定标记标识符的 Profiler 标记标志。
GetMarkerId获取特定名称的 Profiler 标记标识符。
GetMarkerMetadataInfo获取特定标记标识符的 Profiler 标记元数据信息。
GetMarkerName获取特定标记标识符的 Profiler 标记名称。
GetMarkers获取当前性能分析会话中所有可用的标记。
GetSessionMetaData将此帧所在的会话的元数据作为 NativeArray 检索。
GetSessionMetaDataCount获取 Profiler 会话中每个 id 和标签对的元数据块的总数。
GetUnityObjectInfo获取给定实例 ID 的 UnityEngine.Object 信息。
GetUnityObjectNativeTypeInfo获取本机 Unity 类型信息。
GetUnityObjectNativeTypeInfoCount返回捕获中的本机类型计数。
HasCounterValue对于在活动帧中包含计数器的标记返回 true。
ResolveMethodInfo返回指定方法地址的方法名称和位置信息。