包含此页的版本:
不含此页的版本:
记忆分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表模块在 Profiler 窗口顶部的图表中显示内存数据。它会在窗口下半部分的详细信息窗格中显示 Unity 在每一帧中分配内存的位置的明细。
内存探查器模块的图表具有类别,这些类别显示有关应用程序使用内存的位置的详细信息。
| 图表 | 描述 |
|---|---|
| 已用内存总量 | 应用程序使用的总内存。 |
| 纹理记忆 | 多少内存纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格表面,以赋予其视觉细节。更多信息 请参阅术语表在您的应用程序中使用。 |
| 网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息 请参阅术语表记忆 |
应用程序中的网格体使用了多少内存。 |
| 材料计数 | 的数量material(材质) 定义表面应如何渲染的资产。更多信息 请参阅术语表实例。 |
| 对象计数 | 应用程序中的本机对象实例数。 |
| GC 已用内存 | 垃圾回收堆使用的内存量。 |
| 在帧中分配的 GC | 垃圾回收堆上每帧分配的内存量。 |
选择内存模块时,详细信息窗格会显示 Unity 在应用程序中分配内存的位置的明细。下拉列表具有以下选项:
| 视图 | 描述 |
|---|---|
| 简单视图 | 显示 Unity 在应用程序中分配内存的位置的基本概述。 |
| 详细视图 | 重要:此视图已弃用。请改用 Memory Profiler 包。如果安装了内存探查器包,请选择详细信息窗格顶部的“打开内存探查器”按钮以打开“内存探查器”窗口。 |
“简单”视图指示作系统报告为应用程序正在使用的内存量。此值基于系统已用内存profiler 计数器使用 ProfilerCounter API 放置在代码中,以跟踪指标,例如游戏中生成的敌人数量。更多信息
请参阅术语表.在支持从作系统获取应用程序的总内存大小的平台上,系统内存使用情况大于 0,并且在任务管理器中的大小相同。
Unity 会预留一些内存池进行分配,以避免过于频繁地向作系统请求内存。Profiler 模块显示 Unity 保留的内存量,以及 Unity 在 Profiler 捕获时使用的内存量(使用中/保留)
以下参考表描述了“简单”视图中可用的统计信息。它们相应的分析器计数器可通过ProfilerRecorderAPI 和 Profiler 模块编辑器中,以便您可以将它们添加到自定义 Profiler 模块中。
Total Committed Memory 显示 Unity 的内存管理器系统为所选帧跟踪的内存总量。
| 价值 | 描述 |
|---|---|
| 跟踪内存(使用中/保留) | Unity 使用和跟踪(使用中)的内存总量,以及 Unity 为跟踪目的和池分配(保留)而保留的内存量。 |
| 未跟踪的内存 | 指示 Unity 使用但不知道的内存总量。未跟踪内存的一些示例包括: - 通过本机插件或某些驱动程序分配的内存 - Mono 或 IL2CPP 类型元数据 - 可执行代码和 DLL 文件使用的 内存 内存探查器包和本机平台提供程序可能有关于其中一些未跟踪内存量的更多信息。 |
注意:跟踪内存(使用中/保留)统计信息的等效探查器计数器是使用中内存的系统已用内存和保留内存的预留内存总数。
根据 Unity 为其分配内存的子系统,将 Total Committed Memory 分解为高级类别。
并非所有内存系统都使用池或区分已用内存和保留内存。那些显示两个数字的内存量,即已用内存量和保留内存量。如果已用数量与保留数量共享相同的单位(B、MB、GB),Unity 会显示该单位,否则将省略该单位。
| 价值 | 描述 |
|---|---|
| 托管堆 | 托管代码使用的已用堆大小和总堆大小。此内存是垃圾回收的。 |
| 图形和图形驱动程序 | 驱动程序在纹理、渲染目标、着色器 在 GPU 上运行的程序。更多信息 请参阅术语表和网格数据。 |
| 音频 | 音频系统的估计内存使用量。 |
| 视频 | 视频系统的估计内存使用量。 |
| 其他 | 显示 Unity 跟踪的本机内存,但不会在特定计数器下报告。要获取有关此类别或其他类别构成的更多信息,请使用 Memory Profiler 包。 |
| 分析器 | 探查器功能使用并从系统保留的内存。 |
显示通常占用大量内存的资产类型(纹理、网格体、材质、动画剪辑)的对象实例数量,以及它们在内存中的累积大小(资产、游戏对象、场景对象)。
注意:这些统计信息在发布播放器中不可用。
| 价值 | 描述 |
|---|---|
| 纹理 | 加载的纹理和它们使用的内存的总数。 |
| 网 格 | 加载的网格体和它们使用的内存的总数。 |
| 材料 | 它们使用的加载材料和内存的总数。 |
| 动画剪辑可用于动画角色或简单动画的动画数据。它是一个简单的“单位”运动片段,例如(一个特定实例)“空闲”、“步行”或“运行”。更多信息 请参阅术语表 |
加载的 AnimationClip 的总数及其使用的内存。 |
| 资产 | 加载的资产总数。 |
| 游戏对象 | 总数游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息 请参阅术语表实例中的场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,你放置你的环境、障碍物和装饰品,基本上是将你的游戏设计和构建成碎片。更多信息 请参阅术语表. |
| 场景对象 | 动态总数UnityEngine.Object实例。此数字包括 GameObject Count 计数器,加上组件总数,以及场景中非资产的所有内容。 |
| 在框架中分配的 GC | 显示所选帧中的托管分配量及其总大小(以字节为单位)。 |
启用此设置可将“已提交内存总量”(Total Committed Memory) 和 “内存总量细分(Total Memory Breakdown) 图表缩放为所选帧的内存使用情况。如果禁用此设置,则图表将缩放到帧范围内的已用内存总数。此设置可帮助你了解内存总量或相对量如何随帧变化。