# 选择缓存策略

> Explore caching strategies for optimized build speed.

如果构建 Unity 项目，可能是一个复杂的过程，需要管理许多任务和依赖项。这种复杂性的部分原因在于，您需要在远程服务器上执行构建过程，而这些服务器的性能可能不如本地计算机。

> **Note:**
>
> **注意**：Unity Build Automation 能让您选择构建器的[机器规格](./choose-machine-specification.md)，这会改变硬件的性能特性。

Unity Build Automation 需要从源代码仓库下载项目文件。此下载过程可能需要一些时间，具体取决于项目的大小以及 Unity 平台与版本控制系统之间的网络连接情况。该下载过程就是签出阶段，它可能成为构建过程中的重大瓶颈。

另一个可能影响构建时间的因素是需要处理的依赖项和资源的数量。Unity 构建项目时，需要处理项目中使用的所有脚本、着色器、纹理和其他资源。如果项目拥有大量资源，或者依赖关系较为复杂，那么构建过程可能需要更多时间。为了缩短构建时间，可以使用缓存功能，该功能会将一些数据存储在 Unity Build Automation 服务器中，这样在每次运行构建时就无需重新处理这些数据。

## 缓存类型##types-of-caching

Unity Build Automation 目前支持以下缓存选项：

* 无缓存
* 缓存库目录
* 缓存整个项目/工作空间

> **Note:**
>
> **注意**：使用库缓存或工作空间缓存时，项目的首次导入时间会稍微长一些，因为它会首先构建库。首次成功构建后，缓存功能会缩短构建时间。与 Apple 相关的构建会为使用的每个架构生成单独的缓存。

### 库缓存##library-caching

Unity Build Automation 提供了库缓存功能，该功能可以显著减少处理依赖项和资源所需的时间。库缓存会在 UBA 服务器上存储依赖项的缓存，从而节省大量时间和带宽，这对于较大的项目尤其有用。

### 工作空间缓存##workspace-caching

工作空间缓存功能意味着将所有工作空间数据存储在 Unity Build Automation 服务器上。在大多数情况下，在首次成功构建后，如果缓存整个工作空间，则构建所需的时间比库缓存更短，但它也会占用更多的存储空间。

## 配置缓存选项##configure-caching-options

可以在两个级别配置缓存设置：针对特定项目，或者针对构建目标配置。

使用缓存时，可以编辑**缓存压缩级别**。默认值为 **Low（低）**，这是在速度和成本之间的一种折衷选择。如果要最大限度地提高性能，请选择 **None（无）**。**High（高）** 压缩级别对于减少存储使用量非常有用，但也会对性能造成非常大的影响。

### 针对项目配置缓存设置##configure-your-caching-settings-for-a-project

1. 在 Unity Dashboard 中，选择 **DevOps** > **Build Automation** > **Settings（设置）**。
2. 单击 **Project configurations（项目配置）** 选项卡。
3. 选择要使用的缓存类型，然后从下拉选单中选择 **Cache compression level（缓存压缩级别）**。
4. 单击 **Save（保存）**。

### 针对构建目标配置配置缓存设置：##configure-your-caching-settings-for-a-build-target-configuration

> **Note:**
>
> **注意**：此选项会覆盖项目级别的缓存设置。

1. 在 Unity Dashboard 中，选择 **DevOps** > **Build Automation** > **Configurations（配置）**。
2. 选择要编辑的构建配置上的编辑图标，然后选择 **Advanced settings（高级设置）**。
3. 在 Caching（缓存）部分中，选择要使用的缓存类型，然后从下拉选单中选择 **Cache compression level（缓存压缩级别）**。
4. 单击 **Save changes（保存更改）**。
