Version: 6000.3
语言: 中文
自定义本机内存分配器
本机内存分配器示例

本机内存分配器参考

您可以通过使用命令行参数或使用 Unity 编辑器中的设置(编辑>项目设置>内存设置)来控制本机内存的分配方式。有关如何自定义本机内存分配器的信息,请参阅自定义本机内存分配器

项目设置(Project Settings) > 内存设置(Memory Settings),显示播放器内存设置的选择
项目设置(Project Settings) > 内存设置(Memory Settings),显示播放器内存设置的选择

下表包含有关每个分配器设置的信息,以及它们的命令行参数及其默认值:

主分配器

这些分配器是 Unity 用于大多数分配的分配器。

主分配器

Unity 用于大多数分配的主要分配器。它具有以下设置:

设置 描述 命令行参数 默认值
主线程块大小 专用主线程分配器的块大小。 memorysetup-main-allocator-block-size 16777216字节
共享线程块大小 共享线程分配器的块大小。 memorysetup-thread-allocator-block-size 16777216字节

Gfx 分配器

Unity 用于与 Gfx 系统相关的 CPU 分配的分配器。它具有以下设置:

设置 描述 命令行参数 默认值
主线程块大小 专用主线程 Gfx 分配器的块大小。 memorysetup-gfx-main-allocator-block-size 16777216字节
共享线程块大小 共享线程 Gfx 分配器的块大小。 memorysetup-gfx-thread-allocator-block-size 16777216字节

其他分配器

用于类型树和文件缓存的分配。它具有以下设置:

设置 描述 命令行参数 默认值
文件缓存块大小 文件缓存有自己的分配器以避免碎片。这是它的块大小。 memorysetup-cache-allocator-block-size 4194304字节
类型树块大小 类型树有自己的分配器,以避免由于许多小分配而导致碎片化。这是它的块大小。 memorysetup-typetree-allocator-block-size 2097152字节

共享存储桶分配器

在主分配器之间共享的存储桶分配器。它具有以下设置:

设置 描述 命令行参数 默认值
存储桶分配器粒度 共享分配器中存储桶的步长。 memorysetup-bucket-allocator-granularity 16字节
存储桶分配器 BucketCount 存储桶大小的数量。 memorysetup-bucket-allocator-bucket-count 8
存储桶分配器块大小 用于存储桶的内存块的大小。 memorysetup-bucket-allocator-block-size 编辑 器:8388608字节
播放器:
4194304字节
存储桶分配器块计数 要分配的最大块数。 memorysetup-bucket-allocator-block-count 编辑 器:8
选手:1

快速每线程临时分配器

线程本地存储 (TLS) 分配器,用于处理非常短的分配。

分配器 描述 命令行参数 默认值(以字节为单位)
主线程块大小 主线程堆栈的初始大小。 memorysetup-temp-allocator-size-main 编辑 器:16777216
选手:4194304
作业工作人员块大小 Unity 作业系统中每个作业辅助角色的大小。 memorysetup-temp-allocator-size-job-worker E262144
后台作业辅助角色块大小 每个后台辅助角色的大小。 memorysetup-temp-allocator-size-background-worker 32768
预加载块大小 预加载管理器堆栈大小。 memorysetup-temp-allocator-size-preload-manager 编辑 器:33554432
选手:262144
音频工作程序块大小 每个音频工作线程的堆栈大小。 memorysetup-temp-allocator-size-audio-worker 65536
云辅助角色块大小 云辅助线程堆栈大小。 memorysetup-temp-allocator-size-cloud-worker 32768
Gfx线程块大小 主渲染线程堆栈大小。 memorysetup-temp-allocator-size-gfx 262144
GI 烘焙块大小 每个 GI 工作线程的堆栈大小。 memorysetup-temp-allocator-size-gi-baking-worker 262144
NavMeshUnity 生成的网格,用于近似环境中的可行走区域和障碍物,以进行路径查找和 AI 控制的导航。更多信息
请参阅术语表
工作程序块大小
导航meshUnity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表
工作线程堆栈大小。
memorysetup-temp-allocator-size-nav-mesh-worker 65536

快速线程共享临时分配器

用于线程之间共享的短期分配的快速线性分配器

分配器 描述 命令行参数 默认值(以字节为单位)
作业分配器块大小 Unity 主要使用循环线性线程分配器来处理作业工作线程。 memorysetup-job-temp-allocator-block-size 2097152
后台作业分配器块大小 后台辅助角色的线性分配器,允许更长的分配。 memorysetup-job-temp-allocator-block-size-background 21048576
低内存平台上的作业分配器块大小 内存小于 2 GB 的平台将此大小用于作业辅助角色和后台作业。 memorysetup-job-temp-allocator-reduction-small-platforms 262144

分析器分配器

Unity 专门用于 Profiler 的分配器,以便它们不会干扰应用程序的分配模式。它们具有以下设置:

设置 描述 命令行参数 默认值
分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
块大小
Profiler 主要部分的块大小。 memorysetup-profiler-allocator-block-size 16777216
编辑器分析器块大小(Editor Profiler Block Size) 性能分析器(Profiler) 的 编辑器(Editor) 部分的块大小。这在播放器中不存在。 memorysetup-profiler-editor-allocator-block-size 1048576字节

共享性能分析器存储桶分配器

Profiler 和 Editor Profiler 分配器的共享存储桶分配器。在低内存平台上不存在。它具有以下设置:

设置 描述 命令行参数 默认值
存储桶分配器粒度 共享分配器中存储桶的步长。 memorysetup-profiler-bucket-allocator-granularity 16字节
存储桶分配器 BucketCount 存储桶大小的数量。例如,如果值为 4,则大小为 16 字节、32 字节、48 字节和 64 字节。 memorysetup-profiler-bucket-allocator-bucket-count 8
存储桶分配器块大小 用于存储桶的内存块的大小。 memorysetup-profiler-bucket-allocator-block-size 编辑 器:33554432字节
播放器:
4194304字节
存储桶分配器块计数 要分配的最大块数。 memorysetup-profiler-bucket-allocator-block-count 编辑 器:8
选手:1

其他资源

自定义本机内存分配器
本机内存分配器示例