Unity 内置了性能分析器计数器,可用于在自定义性能分析器模块中收集和显示指标。下表概述了可用的内置性能分析器计数器。此信息也可以通过 ProfilerRecorder API 和性能分析器模块编辑器获得,因此您可以将它们添加到自定义性能分析器模块中。下表列出了 Unity 中可用的性能分析器计数器:
在发布版本(非开发版本)的播放器中,可用的文件访问性能分析器计数器及其可用性如下:
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| File Bytes Read | Unity 在所选帧期间从此文件读取的信息的总字节数。 | Unavailable(不可用) |
| File Bytes Written | Unity 在所选帧期间写入此文件的信息的总字节数。 | Unavailable(不可用) |
| File Handles Open | 在此帧内随时打开的文件句柄总数。这包括 Unity 在同一帧中打开和关闭的文件。 | Unavailable(不可用) |
| File Reads Finished | 在此帧中完成的文件读取数。 | Unavailable(不可用) |
| File Reads Started | 在此帧期间开始的文件读取数量 | Unavailable(不可用) |
| File Seeks | 此帧在本地文件系统中执行的文件查找操作的数量。文件查找操作涉及对文件内容的搜索。 | Unavailable(不可用) |
| Files Closed | 此帧在本地文件系统中成功关闭的文件总数。 | Unavailable(不可用) |
| Files Opened | 此帧在本地文件系统中成功打开的文件总数。 | Unavailable(不可用) |
| Reads in Flight | 在此帧期间正在进行的读取操作的总数。 | Unavailable(不可用) |
有关收集文件访问数据的更多信息,请参阅文件访问性能分析器模块参考。
可用资源加载性能分析器计数器以及发布版(非开发版)播放器中的可用性如下:
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| Audio Reads | 从 AsyncReadManager 请求用于音频加载的字节数。 | Unavailable(不可用) |
| Entities Reads | 实体包中的脚本从 AsyncReadManager 请求的字节数。 | Unavailable(不可用) |
| Mesh Reads | 从 AsyncReadManager 请求用于网格加载的字节数。 | Unavailable(不可用) |
| Other Reads | 为未指定的子系统从 AsyncReadManager 请求的字节数。 | Unavailable(不可用) |
| Scripting Reads | 通过脚本 API 从 AsyncReadManager 请求的字节数。 | Unavailable(不可用) |
| Texture Reads | 从 AsyncReadManager 请求用于纹理加载的字节数。 | Unavailable(不可用) |
| Virtual Texture Reads | 从 AsyncReadManager 请求用于虚拟纹理的字节数。 | Unavailable(不可用) |
有关收集资源数据的更多信息,请参阅资源加载性能分析器模块参考。
下表概述了可用内存性能分析器计数器以及发布版(非开发版)播放器中的可用性。
提示:您可以使用 Object.FindObjectsByType 方法查找特定类型的对象,然后将此信息传递给 Profiler.GetRuntimeMemorySizeLong 以获取其内存量,然后在发布版播放器中实现此信息。例如,要获取网格计数或网格内存的计数器,请使用 Object.FindObjectsByType<Mesh>().length,然后将这些条目传递给 GetRunTimeMemorySizeLong。
GetRunTimeMemorySizeLong 会影响性能,并且不会在发布构建中提供图形内存量。
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| AnimationClip Count | 已加载的动画剪辑总数。 | Unavailable(不可用) |
| AnimationClip Memory | 已加载的动画剪辑所占用的内存总量,以字节为单位。 | Unavailable(不可用) |
| App Committed Memory | 根据平台操作系统统计的已提交内存,以字节为单位。 | Available(可用) |
| App Resident Memory | 根据平台操作系统统计的常驻内存总量,以字节为单位。 | Available(可用) |
| Asset Count | 已加载的资源总数。 | Unavailable(不可用) |
| Audio Reserved Memory | 音频系统估计的预留内存,以字节为单位。 | Available(可用) |
| Audio Used Memory | 音频系统的估计内存使用量,以字节为单位。 | Available(可用) |
| AudioClip Count | 加载的音频剪辑的总计数。 | Unavailable(不可用) |
| AudioClip Memory | 已加载的音频剪辑的内存总量,以字节为单位。 | Unavailable(不可用) |
| GameObject Count | 场景中游戏对象实例的总数。 | Unavailable(不可用) |
| GC Allocated In Frame | 所选帧中托管分配的总大小,以字节为单位。 | Unavailable(不可用) |
| GC Allocation In Frame Count | 所选帧中的托管分配量。 | Unavailable(不可用) |
| GC Reserved Memory | 为托管代码预留的总堆大小,以字节为单位。此内存量是垃圾收集量。 | Available(可用) |
| GC Used Memory | 托管代码使用的已用堆大小,以字节为单位。此内存量是垃圾收集量。 | Available(可用) |
| Gfx Reserved Memory | 为纹理、渲染目标、着色器和网格数据预留的估计内存量,以字节为单位。 | Unavailable(不可用) |
| Gfx Used Memory | 驱动程序对纹理、渲染目标、着色器和网格数据使用的估计内存量,以字节为单位。 | Unavailable(不可用) |
| Material Count | 已加载的材质总数。 | Unavailable(不可用) |
| Material Memory | 已加载的材质所占用的内存总量,以字节为单位。 | Unavailable(不可用) |
| Mesh Count | 已加载的网格总数。 | Unavailable(不可用) |
| Mesh Memory | 已加载的网格所占用的内存总量,以字节为单位。 | Unavailable(不可用) |
| Object Count | 应用程序中的原生对象实例数量。 | Unavailable(不可用) |
| Physics Used Memory | 物理系统使用的内存总量,以字节为单位。 | Unavailable(不可用) |
| Physics Reserved Memory(2D) | 2D 物理系统预留的内存总量,以字节为单位。 | Unavailable(不可用) |
| Profiler Reserved Memory | 性能分析器功能从系统中预留的内存,以字节为单位。 | Available(可用) |
| Profiler Used Memory | 性能分析器功能使用的内存,以字节为单位。 | Available(可用) |
| Scene Object Count | 动态 UnityEngine.Object 实例的总数。此数值包括__ GameObject__Unity 场景中的基础对象,可以表示角色、道具、风景、摄像机、路径点等。GameObject 的功能由所附的组件决定。更多信息See in Glossary Count 计数器,加上组件的总数,以及场景中所有非资源内容的数量。 |
Unavailable(不可用) |
| System Total Used Memory | 在设备上运行的所有应用程序使用的总内存,以字节为单位。 | Available(可用) |
| System Used Memory | 根据平台操作系统统计的常驻内存总量,以字节为单位。此值与应用程序常驻内存 (App Resident Memory) 值相同。 | Available(可用) |
| Texture Count | 已加载的纹理总数。 | Unavailable(不可用) |
| Texture Memory | 已加载的纹理所占用的内存总量,以字节为单位。 | Unavailable(不可用) |
| Total Reserved Memory | 操作系统中为应用程序预留的总内存,以字节为单位。 | Available(可用) |
| Total Used Memory | 应用程序已使用的内存总量,以字节为单位。 | Available(可用) |
| Video Reserved Memory | 视频系统的估计预留内存,以字节为单位。 | Available(可用) |
| Video Used Memory | 视频系统的估计内存使用量,以字节为单位。 | Available(可用) |
有关收集内存数据的更多信息,请参阅内存性能数据。
在发布版本(非开发版本)的播放器中,可用的物理性能分析器计数器及其可用性如下:
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| Active Constraints | 物理系统已处理的原始约束的数量。 | Unavailable(不可用) |
| Active Dynamic Bodies | 未处于睡眠状态的刚体组件和 ArticulationBody 组件的数量。 |
Unavailable(不可用) |
| Active Kinematic Bodies | 活动状态的运动刚体组件的数量。 | Unavailable(不可用) |
| Articulation Bodies | 场景中的 ArticulationBody 组件数量 |
Unavailable(不可用) |
| Broadphase Adds | 宽阶段算法添加的碰撞体总数。 | Unavailable(不可用) |
| Broadphase Adds/Removes | 宽阶段算法添加或删除的碰撞体总数。 | Unavailable(不可用) |
| Broadphase Removes | 宽阶段算法删除的碰撞体总数。 | Unavailable(不可用) |
| Colliders Synced | 与变换同步的碰撞体数量。 | Unavailable(不可用) |
| Continuous Overlaps | Unity 使用连续碰撞检测来解决的重叠事件的数量。 | Unavailable(不可用) |
| Discreet Overlaps | Unity 使用离散碰撞检测来解决的重叠事件的数量。 | Unavailable(不可用) |
| Dynamic Bodies |
Rigidbody 组件和 ArticulationBody 组件的数量。 |
Unavailable(不可用) |
| Modified Overlaps | Unity 使用接触修改 API 修改的重叠事件数。 | Unavailable(不可用) |
| Narrowphase Lost Touches | 自上一帧以来丢失的碰撞事件的总数。 | Unavailable(不可用) |
| Narrowphase New Touches | 自上一帧以来显示为新碰撞事件的总数。 | Unavailable(不可用) |
| Narrowphase Touches | 自上一帧以来丢失或显示为新的碰撞事件的总数。 | Unavailable(不可用) |
| Overlaps | 重叠事件的数量。重叠事件是指碰撞体相互重叠。 | Unavailable(不可用) |
| Physics Queries | 物理查询(例如射线投射和形状投射)的总量。 | Unavailable(不可用) |
| Rigidbodies Synced | 与变换同步的刚体组件的数量。 | Unavailable(不可用) |
| Static Colliders | 没有刚体或 ArticulationBody 组件的碰撞体的数量 | Unavailable(不可用) |
| Trigger Overlaps | 触发碰撞体之间的重叠事件数(成对计数)。 | Unavailable(不可用) |
有关收集物理数据的更多信息,请参阅物理性能分析器模块参考。
在发布版本(非开发版本)的播放器中,可用的 2D 物理性能分析器计数器及其可用性如下:
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| Added Contacts | 在此帧中添加的接触数。这包括碰撞接触和触发接触。 | Unavailable(不可用) |
| Asleep Bodies | 在此帧中处于睡眠状态(未唤醒)的 Rigidbody2D 数量。 | Unavailable(不可用) |
| Asleep Shapes | 在此帧中处于睡眠状态(未唤醒)的物理形状的数量。 | Unavailable(不可用) |
| Awake Bodies | 此帧中已唤醒的 Rigidbody2D 的数量。 | Unavailable(不可用) |
| Awake Shapes | 在此帧中已唤醒的物理形状的数量。 | Unavailable(不可用) |
| Broadphase Pairs | 物理系统在此帧中处理的宽阶段对的数量。 | Unavailable(不可用) |
| Broadphase Updates | 物理系统在此帧中处理的宽阶段更新的数量。 | Unavailable(不可用) |
| Collision Enter | 物理系统在此帧中调用的 OnCollisionEnter2D 回调的数量。 | Unavailable(不可用) |
| Collision Exit | 物理系统在此帧中调用的 OnCollisionExit2D 回调的数量。 | Unavailable(不可用) |
| Collision Stay | 物理系统在此帧中调用的 OnCollisionStay2D 回调的数量。 | Unavailable(不可用) |
| Continuous Bodies | 此帧中具有 Continuous 碰撞检测模式的 Rigidbody2D 的数量。 |
Unavailable(不可用) |
| Discrete Bodies | 此帧中具有 Discrete 碰撞检测模式的 Rigidbody2D 的数量。 |
Unavailable(不可用) |
| Dynamic Bodies | 此帧中具有 Dynamic 体类型的 Rigidbody2D 的数量。 |
Unavailable(不可用) |
| Dynamic Shapes | 既是 Dynamic 又存在于此帧中的物理形状的数量。 |
Unavailable(不可用) |
| GetContacts Queries | 物理系统在此帧中调用的接触检索查询的次数。这包括查询,例如 Physics2D.GetContacts、Collider2D.GetContacts 和 Rigidbody2D.GetContacts。 |
Unavailable(不可用) |
| IsTouching Queries | 物理系统在此帧中调用的接触触碰查询的次数。这包括查询,例如 Physics2D.IsTouching、Collider2D.IsTouching 和 Rigidbody2D.IsTouching。 |
Unavailable(不可用) |
| Kinematic Bodies | 此帧中具有 Kinematic 体类型的 Rigidbody2D 的数量。 |
Unavailable(不可用) |
| Overlap Queries | 物理系统在此帧中调用的重叠查询的次数。这包括查询,例如 Physics2D.OverlapPoint、Physics2D.OverlapCircle 和 Collider2D.OverlapCollider。 |
Unavailable(不可用) |
| Particle Queries | 粒子系统在此帧中调用的查询的次数。 | Unavailable(不可用) |
| Raycast Queries | 物理系统在此帧中调用的基于射线或直线的查询次数。这包括 Physics2D.Raycast 和 Physics2D.Linecast 等查询。 |
Unavailable(不可用) |
| Removed Contacts | 物理系统在此帧中删除的接触的数量。这包括碰撞接触和触发接触。 | Unavailable(不可用) |
| Shapecast Queries | 物理系统在此帧中调用的形状扫掠查询的次数。这包括查询,例如 Physics2D.BoxCast、Physics2D.CircleCast 和 Collider2D.Cast。 |
Unavailable(不可用) |
| Solver Continuous Islands | 处理连续解算步骤时解算的孤岛的数量。 | Unavailable(不可用) |
| Solver Discrete Islands | 处理离散解算步骤时解算的接触孤岛的数量。 | Unavailable(不可用) |
| Solver Simulation Count | Unity 自动或通过调用 Physics2D.Simulate 或 PhysicsScene2D.Simulate 模拟所有物理场景的次数。 |
Unavailable(不可用) |
| Solver World Count | 此帧中存在的物理场景的总数。 | Unavailable(不可用) |
| Static Bodies | 此帧中具有 Static 体类型的 Rigidbody2D 的数量。 |
Unavailable(不可用) |
| Static | 此帧中存在的处于静态状态的物理形状的数量。 | Unavailable(不可用) |
| Total Bodies | 此帧中存在的 Rigidbody2D 的总数。 |
Unavailable(不可用) |
| Total Callbacks | 物理系统在此帧中调用的 OnCollisionEnter2D、OnCollisionStay2D、OnCollisionExit2D、OnTriggerEnter2D、OnTriggerStay2D 和 OnTriggerExit2D 回调的总数。 |
Unavailable(不可用) |
| Total Contacts | 此帧中存在的接触的总数。这包括碰撞接触和触发接触。 | Unavailable(不可用) |
| Total Joints | 此帧中存在的任何 Joint2D 的总数。 |
Unavailable(不可用) |
| Total Shapes | 此帧中存在的物理形状的总数。 | Unavailable(不可用) |
| Total Queries | 物理系统在此帧中调用的查询的总数。这包括查询,例如 Physics2D.Raycast 和 Physics2D.OverlapPoint
|
Unavailable(不可用) |
| Total Transform Sync Calls | 物理系统在此帧中调用的变换同步调用的总数。 | Unavailable(不可用) |
| Transform Parent Sync Bodies | 因变换重新指定父级而导致受变换同步影响的 Rigidbody2D 的数量。 | Unavailable(不可用) |
| Transform Parent Sync Colliders | 因变换重新指定父级而导致受变换同步影响的 Collider2D 的数量。 | Unavailable(不可用) |
| Transform Sync Bodies | 受变换同步影响的 Rigidbody2D 的数量。 | Unavailable(不可用) |
| Transform Sync Colliders | 受变换同步影响的 Collider2D 的数量。 | Unavailable(不可用) |
| Trigger Enter | 在此帧中调用的 OnTriggerEnter2D 回调的数量。 | Unavailable(不可用) |
| Trigger Exit | 在此帧中调用的 OnTriggerExit2D 回调的数量。 | Unavailable(不可用) |
| Trigger Stay | 在此帧中调用的 OnTriggerStay2D 回调的数量。 | Unavailable(不可用) |
有关收集 2D 物理数据的更多信息,请参阅 2D 物理性能分析器模块参考。
在发布版本(非开发版本)的播放器中,可用的渲染性能分析器计数器及其可用性如下:
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| Batches Count | Unity 在一帧内处理的批次的总数。这个数字包括静态和动态批次。 | Available(可用) |
| CPU Main Thread Frame Time | 从帧开始到主线程完成其在该帧期间执行的工作之间的时间(以毫秒为单位)。 | Available(可用) |
| CPU Render Thread Frame Time | 从渲染线程开始运行到 Unity 调用 Present 方法之间的时间(以毫秒为单位)。 |
Available(可用) |
| CPU Total Frame Time | 总 CPU 帧时间(以毫秒为单位)。Unity 以两帧结束之间的时间计算该数据,包括任何开销或两帧之间等待的时间。 | Available(可用) |
| Draw Calls Count | Unity 在一帧内发出的绘制调用总数。 | Available(可用) |
| Dynamic Batched Draw Calls Count | Unity 合并为动态批次的绘制调用数。 | Unavailable(不可用) |
| Dynamic Batched Triangles Count | 动态批次中包含的游戏对象中的三角形数。 | Unavailable(不可用) |
| Dynamic Batched Vertices Count | 动态批次中包含的游戏对象中的顶点数。 | Unavailable(不可用) |
| Dynamic Batches Count | Unity 在帧期间处理的动态批次数。 | Unavailable(不可用) |
| Dynamic Batching Time | Unity 创建动态批处理结构所花费的时间。 | Unavailable(不可用) |
| GPU Frame Time | GPU 渲染单帧的开始到结束的时间差,以毫秒为单位。 | Available(可用) |
| Index Buffer Upload In Frame Bytes | CPU 上传到 GPU 的几何体数量,以字节为单位。 | Available(可用) |
| Index Buffer Upload In Frame Count | CPU 在帧中上传到 GPU 的几何体数量。 | Available(可用) |
| Instanced Batched Draw Calls Count | Unity 合并为实例化批次的绘制调用数。 | Unavailable(不可用) |
| Instanced Batched Triangles Count | 实例化游戏对象中的三角形数。 | Unavailable(不可用) |
| Instanced Batched Vertices Count | 实例化游戏对象中的顶点数。 | Unavailable(不可用) |
| Instanced Batches Count | Unity 在一帧内渲染实例化游戏对象的处理批次数。 | Unavailable(不可用) |
| Render Textures Bytes | RenderTextures 使用的内存量,以字节为单位。 | Available(可用) |
| Render Textures Changes Count | Unity 在帧期间将一个或多个 RenderTextures 设置为渲染目标的次数。 | Available(可用) |
| Render Textures Count | Unity 在帧期间使用的 RenderTextures 数量。 | Available(可用) |
| SetPass Calls Count | Unity 在一帧中切换用于渲染游戏对象的着色器通道的次数。 | Available(可用) |
| Shadow Casters Count | 在一帧中投射阴影的游戏对象的数量。如果一个游戏对象投射多个阴影(因为多个光源照亮它),该对象投射的每个阴影都有一个条目。 | Available(可用) |
| Static Batched Draw Calls Count | Unity 合并为静态批次的绘制调用数。 | Unavailable(不可用) |
| Static Batched Triangles Count | 静态批次中包含的游戏对象中的三角形数。 | Unavailable(不可用) |
| Static Batched Vertices Count | 静态批次中包含的游戏对象中的顶点数。 | Unavailable(不可用) |
| Static Batches Count | Unity 在一帧内处理的静态批次数。 | Unavailable(不可用) |
| Triangles Count | Unity 在一帧内处理的三角形的数量。 | Available(可用) |
| Used Buffers Bytes | GPU 缓冲区使用的内存量,以字节为单位。 | Available(可用) |
| Used Buffers Count | GPU 缓冲区的总数。这包括顶点、索引和计算缓冲区以及渲染所需的所有内部缓冲区。 | Available(可用) |
| Used Textures Bytes | 纹理使用的内存量,以字节为单位。 | Unavailable(不可用) |
| Used Textures Count | Unity 在帧期间使用的纹理数量。 | Unavailable(不可用) |
| Vertex Buffer Upload In Frame Bytes | CPU 上传到 GPU 的几何体数量,以字节为单位。 | Available(可用) |
| Vertex Buffer Upload In Frame Count | CPU 在帧中上传到 GPU 的几何体数量。 | Available(可用) |
| Vertices Count | Unity 在帧期间处理的顶点的数量。 | Available(可用) |
| Video Memory Bytes | 应用程序中的视频所使用的系统内存量,以字节为单位。 | Available(可用) |
| Visible Skinned Meshes Count | 帧中带蒙皮的网格渲染器的数量。 | Available(可用) |
有关收集渲染数据的更多信息,请参阅渲染性能分析器模块参考。
在发布版本(非开发版本)的播放器中,可用的虚拟纹理性能分析器计数器及其可用性如下:
| 性能分析器计数器 | 描述 | 发布版(非开发版)播放器的可用性 |
|---|---|---|
| Atlases | 虚拟纹理空间或图集的数量(最多 64 个)。 | Unavailable(不可用) |
| Max Cache Demand | 在所选帧中缓存所有 GPU 缓存的最高缓存需求。 | Unavailable(不可用) |
| Max Cache Mip Bias | 自动 Mipmap 偏差应用于具有相同纹理格式的所有纹理。如果此值不为零,则缓存无法容纳所有可见的该格式的图块。Mipmap 偏差越高,纹理质量越低。 | Unavailable(不可用) |
| Missing Disk Data | 您的应用程序需要从磁盘读取以满足所选帧的剩余数据(以字节为单位)。 | Unavailable(不可用) |
| Missing Streaming Tiles | 屏幕上可见但不在视频内存中的图块数量。 | Unavailable(不可用) |
| Read From Disk | Unity 完成所选帧的磁盘读取操作的字节数。 | Unavailable(不可用) |
| Required Tiles | 屏幕上可见的纹理图块的数量。这些是着色器尝试采样以渲染所选帧的图块。 | Unavailable(不可用) |
| Total CPU Cache Size | Unity 从磁盘加载纹理图块后分配给存储的纹理图块的内存量。 | Unavailable(不可用) |
| Total GPU Cache Size | 虚拟纹理模块在所选帧中分配的所有 GPU 缓存的大小。 | Unavailable(不可用) |
有关收集虚拟纹理数据的更多信息,请参阅虚拟纹理模块参考。