Build Cache (Build Avoidance)

Build Cache 用内置缓存选项缩短构建时间。通过该选项,您可以只重建已修改的对象,不必重建整个代码库。在首次构建执行过程中填充缓存后,性能提升的效果会从第二次执行开始显现。因此,此功能对单次使用的虚拟机无用。

如需使用构建缓存,您可以在运行各构建时使用命令行开关,查看缓存中是否有任何可用项,并将正在运行的构建保存到缓存中,以便未来使用。使用构建缓存需要额外的存储空间,分配在缓存对应的 Initiator 机器上。建议您分配相当于项目输出文件夹大小两倍或更多内存。

您可以定义缓存是否可以在 Initiator 机器上的所有用户之间(“共享”)、定义用户组(“”)或当前用户(“用户”)之间共享。用户组是在您的操作系统上进行定义。无论何时使用 group 选项,均必须指定目标组(例如 group='devteam1')。

在所有情况下,缓存只能在单个 Incredibuild Initiator 机器上使用。

配置 Build Cache Settings

Initiator 上可使用以下命令:

  • 设置构建缓存大小。缓存大小默认为 100 GB,不过您可以修改数值:

    /opt/incredibuild/management/build_avoid_cache.sh <user|shared|group='groupname'> set_size <size in GB>

  • 返回有关构建缓存位置和大小的信息:

    /opt/incredibuild/management/build_avoid_cache.sh <user|shared|group='groupname'> info

  • 清除构建缓存:

    /opt/incredibuild/management/build_avoid_cache.sh <user|shared|group='groupname'> clear

利用 Build Cache 运行 Builds

运行构建时,添加以下命令行开关,使用构建缓存。--avoid 命令默认关闭。使用时,这些命令仅适用于当前构建。

  • --avoid-user 会为当前用户激活构建缓存。

  • --avoid-shared 会为在此 Initiator 上使用的每个用户激活构建缓存。

  • --avoid-group="groupname" 会为指定组中的所有用户激活构建缓存。

  • --avoid-basedir=<path> 定义项目的基本目录。此信息允许 Incredibuild 使用通过不同路径激活的构建的缓存。

例如:

ib_console --avoid-shared --avoid-basedir=/home/myuser/opencv/sources make -j 40