Initiator
General
在 General 页面可以设置 Incredibuild Agent 处理项目配置的问题:
Distribution
Restart remote processes on local machine when possible
此选项(默认禁用)有助于防止作业“等待”慢速远端机器完成任务执行的情况发生。如果启用此模式后遇到这种情况,则 Incredibuild 会在本地机器上与远端机器并行执行此任务,并将第一台完成任务的机器的输出应用于构建。
备注:
- 启用此模式后,您可能会看到同一目标的两个执行栏同时运行。当其中一个执行栏完成时,另一个执行栏消失,表明较快机器的输出已应用于构建。
Avoid task execution on local machine when possible
启用此选项后,可以远程执行的任务(C/C++ 编译等)仅在远端机器上执行,而本地机器专用于那些只能在本地执行的任务(比如链接)。
备注:
- 禁用此选项后,如果本地系统的资源变得非常繁忙,则将避免在本地执行分布式任务。
- 启用此选项可提高大型构建中的性能。这样本地计算机可以专注于 I/O、文件传输等,并且可以更容易与远端机器同步。由于并非所有构建都是如此,因此建议进行试验,以确定这是否适用于您的特定构建。
Enable standalone mode
启用此种模式后,Agent 在启动构建时仅使用其本地 CPU。Agent 仍参与其他 Agent 启动的远程构建。
CPU Allocation
此设置确定在构建中可以使用的最大 CPU 核数,而不管可用 Agent 的数量,也不考虑本地和远程内核。
如果选择 Avoid task execution on local machine when possible 选项,本地内核仍将计入可用于构建的最大内核数,即使它们不用于运行编译。
Build Completion Sound
有如下三个可用选项:
- Don't play a sound- 构建完成声音被禁用。
- Sound a system beep- 当构建完成时将发出系统提示音。
- Play Control Panel defined sounds- Incredibuild 针对以下每个事件使用用户规定的声音:构建成功完成、构建失败、构建取消。如要修改构建声音设置,可使用 "Sounds and Audio Devices" Control Panel 工具。
Advanced
Advanced 页面含有影响此 Agent 所启动构建的高级设置:
性能
Write output to disk in the background
启用此选项后,输出文件将在后台物理写入磁盘,这可能会提高某些环境中的任务调度速度。建议在启用此选项之前,使用或不使用此选项对性能进行基准测试。
Enable minimal directory synchronization
此功能可用于加速 Visual Studio 构建中的目录同步。启用此功能后,Incredibuild 仅执行一次源文件时间戳检查,但已明确标记为构建中其他任务输出的文件和文件夹除外(例如,只要由“生成”源文件的 Visual Studio 自定义构建步骤生成的文件已明确声明为输出文件,在其被修改后,该文件会重新发送至远程 Agent)。在将源文件存储在慢速文件系统(例如,在版本控制数据库或远程文件服务器中)的环境中,此模式可以显着缩短构建时间。
重要事项:
- 当使用最小目录同步时,生成由构建中的其他步骤用作输入的文件的所有任务都必须明确地将这些文件声明为输出文件。否则,会导致构建错误或构建中使用这些文件的旧版本。MSVC 的输出文件定义机制将足够使用。有关使用 Post-Build/Pre-Link/Pre-Build 步骤生成源文件(无法声明输出文件)的情况或其他特殊情况,请参阅高级 Output File Definition Directives 部分。
Timestamp Comparison
Use this threshold when comparing files timestamps
设置 Incredibuild 在比较输入和输出文件时间戳时使用的最小时间戳差异阈值(以秒为单位)。例如,如果将该阈值设置为 5 且 .OBJ 文件比其源文件早 3 秒钟,则在运行增量构建时不编译该源文件。仅当您特别需要使用更高的阈值时,才使用此选项。
Recovery
Terminate Helper Processes after X Seconds
此选项定义可分布任务的最大合法持续时间。超过规定持续时间的任务会自动终止并重新分配给另一 Agent。
Terminate inactive Helper processes
启用此选项后,Incredibuild 会检测持续 16 秒以上未接收 CPU 周期的分布式任务。如果正在运行的任务满足此条件,它将被终止并重新分配给另一个 Agent。
Processes
Processes 页面控制赋予由此机器启动的构建上的 IncredBuild 进程的进程优先级:
Process Priority
Main Initiator process priority
控制 "BuildSystem.exe" 进程的进程优先级,该进程负责管理运行此 Agent 的机器上启动的构建。
Locally executed non-distributable task process priority
控制已分配给非分布式任务的进程优先级(例如,Visual Studio C++ 链接步骤)。
Locally executed distributable task process priority
控制在本地(启动)机器上运行时已分配给非分布式任务的进程优先级。