包含此页的版本:
不含此页的版本:
注意:内部探查器已弃用,并将在未来版本的 Unity 中停用。请改用 Profiler 窗口(菜单:Window > Analysis > Profiler)请参阅在 iOS 设备上收集性能数据,了解有关如何分析 iOS 设备的更多信息。
Unity 包含一个内置的分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表以提供有关应用程序运行方式的见解。每 30 帧,内置分析器会从设备上运行的应用程序发出控制台消息,以帮助确定它是受 CPU 还是 GPU 限制。如果应用程序受 CPU 限制,则可以确定是脚本代码还是垃圾回收导致了瓶颈。
下面是内置分析器的输出示例:
iPhone Unity internal profiler stats
frametime> min: 32.5 max: 34.1 avg: 33.3
cpu-player> min: 2.2 max: 4.4 avg: 3.7
batches> min: 3 max: 3 avg: 3
draw calls> min: 3 max: 3 avg: 3
tris> min: 1704 max: 1704 avg: 1704
verts> min: 5088 max: 5088 avg: 5088
dynamic batching> batched draw calls: 0 batches: 0 tris: 0 verts: 0
static batching> batched draw calls: 0 batches: 0 tris: 0 verts: 0
player-detail> physx: 0.0 animation: 0.0 culling 0.0 skinning: 0.0 batching: 0.0 render: 0.0 fixed-update-count: 0 .. 0
scripting-scripts> update: 0.0 fixedUpdate: 0.0 coroutines: 0.0
scripting-memory> information not available on non-development player configuration
所有时间均以每帧毫秒为单位。您可以检查过去 30 帧的最小、最大和平均时间。
| 财产 | 功能 |
|---|---|
| CPU播放器 | 显示应用在 Unity 引擎中执行代码和执行所花费的时间脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息 请参阅术语表在 CPU 上。 |
| cpu-ogles-drv(仅限 Android) | 显示在 CPU 上执行 OpenGL ES 驱动程序代码所花费的时间。这些驱动程序统计信息可能受到多种因素的影响,包括绘制调用数、内部渲染状态更改数、渲染管线设置和已处理顶点数。 |
| cpu-present(仅限 Android) | 执行presentRenderbuffer命令。 |
| 帧时间 | 表示应用帧的总时间。请注意,iOS 硬件锁定为 60Hz 刷新率,因此此属性将始终返回 16.7 毫秒的倍数 (1000ms/60Hz = 16.7ms) 的时间。 |
| 财产 | 功能 |
|---|---|
| 特里斯# | 发送用于渲染的三角形总数。 |
| 垂直# | 发送渲染的顶点总数。如果您的应用程序仅使用静态几何图形,请将此数字保持在 10000 以下。如果您的应用程序使用蒙皮几何体的许多实例,则此数字应该低得多。 |
| 动态/静态批处理 | 引擎自动批处理的绘制调用、三角形和顶点的数量。将这些数字与平局和三角形总数进行比较,可以让您了解自己的情况如何场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息 请参阅术语表准备进行批处理。在对象之间共享尽可能多的材质,以改进批处理。 |
玩家详细信息部分提供了引擎内部发生情况的详细分类:
| 财产 | 功能 |
|---|---|
| 物理 | 花在物理上的时间。 |
| 动画 | 为骨骼制作动画所花费的时间。 |
| 淘汰 | 在相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息 请参阅术语表平截头体。 |
| 蒙皮(skinning) 将骨骼关节绑定到角色网格体或“皮肤”顶点的过程。使用外部工具(如Blender或Autodesk Maya)执行。更多信息 请参阅术语表 |
将动画应用于蒙皮网格体所花费的时间。 |
| 配料 | 批处理几何体所花费的时间。批处理动态几何体比批处理静态几何体更耗费资源。 |
| 呈现 | 渲染可见对象所花费的时间。 |
| 固定更新计数 | 在此帧内执行的 FixedUpdate 的最小和最大数量。太多的 FixedUpdate 会显着降低性能。 |
scripting-scripts 部分提供了在 Mono 运行时执行代码所花费的时间的详细细分:
| 财产 | 功能 |
|---|---|
| 更新 | 执行所有Update()脚本中的方法。 |
| 已修复更新 | 执行所有FixedUpdate()脚本中的方法。 |
| 协程 | 在脚本协程中花费的时间。 |
scripting-memory 部分让您了解 Mono 垃圾收集器如何管理内存:
| 属性: | 功能: |
|---|---|
| 已分配的堆 | 可用于分配的内存总量。如果堆没有足够的内存用于给定分配,则会触发垃圾回收。如果这不能释放足够的内存,则分配的堆的大小将增加。 |
| 已用堆 | 对象当前用完的已分配堆部分。每次创建新的类实例(而不是结构)时,此数字都会增长,直到下一次垃圾回收。 |
| 最大集合数 | 过去 30 帧内的垃圾回收传递次数。 |
| 收集总持续时间 | 过去 30 帧内发生的所有垃圾回收过程的总时间(以毫秒为单位)。 |
在 iOS 上,内部分析器默认处于禁用状态。若要启用它,请使用以下任一过程。
要从 Xcode 项目内部启用内部分析器,请使用以下步骤:
InternalProfiler.h文件。#define ENABLE_INTERNAL_PROFILER 0
自
#define ENABLE_INTERNAL_PROFILER 1
要在 Unity 中启用内部分析器,请使用以下步骤:
注意:确保开发版本开发版本包括调试符号并启用性能分析器。更多信息
请参阅术语表选项在 Platform Settings 部分启用构建配置文件 为目标平台创建构建时使用的一组可自定义配置设置。更多信息
请参阅术语表窗口。
要显示输出控制台,请在 Xcode 中选择 查看(View) > 调试区域(Debug Area) > 激活控制台(Activate Console),然后运行项目。Unity 每 30 帧将统计信息输出到控制台窗口。