版本:Unity 6 (6000.0)
语言:英语
线程安全的线性分配器
Unity 分析器

自定义分配器

注意:并非所有平台都支持此功能。有关更多信息,请参阅平台特定文档。

要自定义分配器设置,您可以通过编辑器 UI编辑可配置值,或将它们作为命令行参数提供。

使用编辑器

  1. 选择项目设置>内存设置
  2. 选择要编辑的值旁边的锁定图标。
Project Settings > Memory Settings, showing a selection of Player memory settings
项目设置 > 内存设置,显示玩家内存设置的选择

注意:请参阅之前各个分配器部分,以查看可通过编辑器 UI 自定义的字段。

使用命令行参数

要查找要更改的分配器参数的名称,请检查编辑器和玩家启动时打印的分配器设置列表。例如,要更改主堆分配器的块大小,请使用-memorysetup-main-allocator-block-size=<new_value>

分配器参数名称及其默认值

分配器 描述 参数名称 默认值
主分配器 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
桶分配器桶数 桶大小的数量。 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
导航网格Unity 生成的网格,用于近似环境中的可行走区域和障碍物,以便路径查找和 AI 控制的导航。 更多信息
请参阅术语表
工作器块大小
导航 网格Unity 的主要图形基元。网格构成了 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。 更多信息
请参阅术语表
工作器线程的堆栈大小。
memorysetup-temp-allocator-size-nav-mesh-worker 65536
快速线程共享临时分配器 用于线程之间共享的短暂分配的快速线性分配器。
作业分配器块大小 Unity 主要用于作业工作器线程的循环轮询线性线程分配器。 memorysetup-job-temp-allocator-block-size 2097152
后台作业分配器块大小 用于允许更长时间分配的后台工作器的线性分配器。 memorysetup-job-temp-allocator-block-size-background 21048576
低内存平台上的作业分配器块大小 内存小于 2GB 的平台使用此大小,用于作业工作器和后台作业。 memorysetup-job-temp-allocator-reduction-small-platforms 262144
分析器一个窗口,可帮助您优化游戏。它显示在游戏各个区域花费了多少时间。例如,它可以报告渲染、动画或游戏逻辑中花费的时间百分比。 更多信息
请参阅术语表
分配器
Unity 专用于分析器的分配器,因此它们不会干扰应用程序的分配模式。
分析器块大小 分析器主要部分的块大小。 memorysetup-profiler-allocator-block-size 16777216
编辑器分析器块大小 分析器编辑器部分的块大小。这在玩家身上不存在。 memorysetup-profiler-editor-allocator-block-size 1048576
共享分析器桶分配器 分析器和编辑器分析器分配器的共享桶分配器。

在低内存平台上不存在。
桶分配器粒度 共享分配器中桶的步长。 memorysetup-profiler-bucket-allocator-granularity 16
桶分配器桶数 桶大小的数量。例如,如果值为 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

提示:为确保您的设置提高性能,请在更改前后分析应用程序。有关更多信息,请参阅分析器概述页面分析器分析器的软件包文档。分析器分析器支持多帧比较,这对于突出显示分配器性能差异特别有用。您还可以查看内存使用情况报告。当您关闭 Player 或编辑器时,它们在日志中可用。要查找您的日志文件,请按照日志文件页面上的说明进行操作。

存储和读取设置

Unity 将分配器设置存储在MemorySettings.asset中,该文件在构建时使用修改后的设置填充boot.config文件。这意味着新的设置将在每次构建时生效。

在编辑器中,boot.config位于ProjectSettings文件夹中。它会在每次 Unity 导入或更改MemorySettings.asset时更新。新的编辑器值将在下次编辑器启动时生效。

线程安全的线性分配器
Unity 分析器