构建性能的优化
在某些情况下,您可以进一步优化 Visual Studio 项目的构建速度,方法是对 Incredibuild 配置或项目设置的某些方面进行微调。
优化项目设置
以下对项目设置的更改有助于缩短构建时间,特别适用于使用 Incredibuild 时:
-
Disabling Browse Information – 浏览信息的创建延长了每个文件的编译时间,增加了额外的网络压力,还会在每次构建结束时添加一个额外步骤,用于创建 .BSC 文件。如果您通常不使用此 Visual Studio 功能,您可以选择禁用浏览信息创建,或直接将 Incredibuild 的 Browse Information Creation 选项 (Generate .BSC (Source Browser database) file) 设置为 Never,操作路径为 Agent Settings > Visual Studio Builds > Browse Information。
-
Disabling incremental compilation and minimal rebuild(/Gi 和 /Gm 编译器标志)– 禁用这两个选项,可获得有略微改进的 Incredibuild 性能。
限制 PDB 文件的数量
此功能适用于 Visual Studio 2012 及更高版本,如需将其作为用户问题的解决方案用于 Visual Studio 2011 版本,我们的支持团队建议您将注册表中的 PdbForwardingMode 标志设置为 0。
要实现此功能的分发,Incredibuild 会为每个在给定时间运行的 Agent 创建单独 PDB 文件。也就是说,与标准 MSVC 构建不同,在此情况下,多个 PDB 文件将创建于中间文件夹,这可能会减慢链接阶段的速度。您可以选择限制 PDB 文件的数量。
限制后链接速度可能会加快,此外,进行该操作时,您也相应限制了允许同时编译来自同一项目文件的 Agent 数量。因此,通常仅在您的构建包含相对大量项目的文件时,建议使用此选项。
如需限制 PD 文件数量,前往 Agent Settings > Visual Studio Builds > Advanced,设置一个限制。
防止链接步骤在本地机器上并行运行
允许链接步骤在发起机器上并行运行(假设机器上具有多个核心/CPU 以及分配的 Multiple CPUs/Cores 扩展包)有时可以改进构建性能。然而,如果您的链接步骤通常会消耗大量内存,而您的机器并没有足够的物理内存来支持多链接步骤,那么该操作可能会因过量的页面文件交换而减慢构建速度。
如需对链接步骤进行并行化配置,前往 Agent Settings > Visual Studio Builds > General,然后指定 CPU/核心利用率。
将特定项目设置为本地运行
将繁重任务分发至远端 Agent 可能会导致 Initiator 机器产生高 I/O 比率,进而导致构建时间增加。可以将包含这些繁重任务的项目定义为仅在本地机器上运行。
>要将某项目标记为仅在本地运行:
-
在 Visual Studio 中右键点击该项目,并选择 Properties > Configuration Properties > C/C++ >Preprocessor Definitions。
-
将以下字符串添加至 Preprocessor Definitions 部分:IB_RunLocal
将特定文件同步回 Initiator 机器
此流程适用于已定义为 VC compiler = true 的进程。例如 Microsoft 编译器和 Intel 编译器,两者已在 Incredibuild 中定义为“将 OBJ 文件返回”。如果想要让这两种编译器返回其他文件,您可以将文件明确定义为“需要同步回 Initiator 机器”。
>要将文件明确定义为“需要同步返回 Initiator 机器”:
-
在 Coordinator 机器中, 右键点击 Incredibuild 任务栏图标,并选择 Coordinator Monitor。
-
右键点击 Agent 列表中的 Initiator Agent 并选择 Set Registry Value...。
-
确保将 Value Category 设置为 Builder。
-
在 Name 之下,输入 AdditionalOutputMasks。
-
在 Data 之下,输入以下字符串之一:*.txt 用于返回所有 *.txt 文件。*.txt;*.xml 用于返回所有 *.txt files 和所有 *.xml files。
-
点击 Ok。注册表值成功添加至 Initiator 机器。