内存 分析器一个帮助您优化游戏的窗口。它显示了在游戏各个领域花费了多少时间。例如,它可以报告在渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
参见 术语表 模块在 分析器窗口 的顶部以图表形式显示内存数据。它在窗口下半部分的详细信息窗格中显示了 Unity 在每一帧中分配内存的细分。
内存分析器模块的图表包含类别,这些类别显示有关应用程序在何处占用内存的详细信息。
图表 | 描述 |
---|---|
总使用内存 | 应用程序使用的总内存。 |
纹理内存 | 应用程序中 纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格的表面,以赋予其视觉细节。 更多信息 参见 术语表 使用的内存。 |
网格Unity 的主要图形基元。网格构成了 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。 更多信息 参见 术语表 内存 |
应用程序中 网格 使用的内存。 |
材质数量 | 应用程序中的 材质定义表面渲染方式的资源。 更多信息 参见 术语表 实例数量。 |
对象数量 | 应用程序中的本机对象实例数量。 |
GC 使用内存 | 垃圾收集堆 使用的内存量。 |
帧内 GC 分配 | 每帧在垃圾收集堆上分配的内存量。 |
选择内存模块后,详细信息窗格将显示 Unity 在应用程序中分配内存的细分。下拉列表包含以下选项
视图 | 描述 |
---|---|
简单视图 | 显示有关 Unity 在应用程序中分配内存的基本概述。 |
详细视图 | 重要提示:此视图已弃用。请改用 内存分析器包。如果您已安装内存分析器包,请在详细信息窗格的顶部选择“打开内存分析器”按钮以打开内存分析器窗口。 |
简单视图指示操作系统报告的应用程序正在使用的内存量。该值基于系统使用内存 分析器计数器使用分析器计数器 API 放置在代码中以跟踪指标,例如游戏中生成的敌人数量。 更多信息
参见 术语表。在支持从操作系统获取应用程序总内存大小的平台上,系统内存使用量超过 0 并且在任务管理器中大小相同。
Unity 预留了一些内存池用于分配,以避免过于频繁地向操作系统请求内存。分析器模块显示 Unity 预留了多少内存,以及在分析器捕获时 Unity 使用了多少内存,显示为 (正在使用 / 预留)
以下参考表描述了简单视图中可用的统计信息,以及相应的分析器计数器和在发布版本中的可用性。此信息也可以通过 ProfilerRecorder
API 获得,也可以在 分析器模块编辑器 中获得,因此您可以将它们添加到自定义分析器模块中。
总提交内存显示 Unity 的内存管理器系统为所选帧跟踪的总内存量。
值 | 描述 | 相应的分析器计数器 | 发布版播放器中的可用性 |
---|---|---|---|
跟踪的内存(正在使用 / 预留) | Unity 使用并跟踪的总内存量(正在使用),以及 Unity 为跟踪目的和池分配预留的内存量(预留)。 | 系统使用内存 | 可用 |
未跟踪的内存 | 指示 Unity 使用但未意识到的总内存量。未跟踪内存的一些示例包括 - 通过本机插件或某些驱动程序分配的内存 - Mono 或 IL2CPP 类型元数据 - 可执行代码和 DLL 文件使用的内存 内存分析器包 和本机平台提供者可能提供有关某些未跟踪内存量的更多信息。 |
N/A | N/A |
根据 Unity 为其分配内存的子系统,将总提交内存细分为高级类别。
并非所有内存系统都使用池或区分已使用内存和预留内存。那些使用池的系统会显示两个数字,已使用内存量和预留内存量。如果已使用内存量与预留内存量不使用相同的单位(B、MB、GB),则 Unity 会显示该单位,否则省略。
值 | 描述 | 相应的分析器计数器 | 发布版播放器中的可用性 |
---|---|---|---|
托管堆 | 托管代码使用的已使用堆大小和总堆大小。此内存是 垃圾回收 的。 | GC 使用内存 GC 预留内存 |
可用 |
图形与图形驱动程序 | 驱动程序在纹理、渲染目标、着色器和网格数据上使用的内存估计量。 | Gfx 使用内存 Gfx 预留内存 |
不可用 |
音频 | 音频系统的内存使用量估计。 | 音频使用内存 音频预留内存 |
可用 |
视频 | 视频系统的内存使用量估计。 | 视频使用内存 视频预留内存 |
可用 |
其他 | 显示 Unity 跟踪但未在特定计数器下报告的本机内存。要获取有关此类别或其他类别的构成信息的更多信息,请使用 内存分析器包。 | N/A | N/A |
分析器 | 分析器功能从系统中使用的内存和预留内存。 | 分析器使用内存 分析器预留内存 |
可用 |
显示通常占用大量内存的资源类型(纹理、网格、材质、动画剪辑)的对象实例数量,以及它们在内存中的累积大小(资源、游戏对象、场景对象)。
注意:这些统计信息在发布版播放器中不可用。
值 | 描述 | 相应的分析器计数器 |
---|---|---|
纹理 | 加载纹理的总数及其使用的内存。 | 纹理数量 纹理内存 |
网格 | 加载网格的总数及其使用的内存。 | 网格数量 网格内存 |
材质 | 加载材质的总数及其使用的内存。 | 材质数量 材质内存 |
动画剪辑 | 加载动画剪辑的总数及其使用的内存。 | 动画剪辑数量 动画剪辑内存 |
资源 | 加载资源的总数。 | 资源数量 |
游戏对象 | 场景中的 游戏对象Unity 场景中的基本对象,可以代表角色、道具、场景、摄像机、航路点等等。游戏对象的功 | 游戏对象数量 |
场景对象 | 动态 UnityEngine.Object 实例总数。此数量包含游戏对象数量计数器,加上组件总数,以及场景中不是资源的所有内容。 |
场景对象数量 |
帧内 GC 分配 | 显示所选帧中的托管分配量及其总字节大小。 | 帧内 GC 分配数量 帧内 GC 分配 |
启用此设置以将总提交内存和总内存细分图表缩放到所选帧的内存使用量。如果禁用此设置,则图表会缩放到帧范围内的总使用内存。此设置可以帮助您了解总内存量或相对内存量在帧与帧之间如何变化。