65.9K
CodeProject 正在变化。 阅读更多。
Home

IncrediBuild - 快速 C/C++ 编译

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2002年10月7日

6分钟阅读

viewsIcon

193767

IncrediBuild 集成 Microsoft Visual C++ 后,能在网络中的工作站上静默地分配编译任务,将编译时间缩短 90% 或更多。

这是我们为 CodeProject 赞助商系列产品展示评测的续篇。这些评测旨在为您提供我们认为对开发者有用且有价值的产品和服务信息。它们还允许您一对一地讨论产品并与制造商或提供商互动。

IncrediBuild 将 C/C++ 构建时间缩短 90%

您有多少次发现自己茫然地盯着屏幕,等待 MSVC 编译您最新的代码修改?您是否熟悉在修改您知道会导致项目几乎完全重建的头文件之前,会有一个小小的犹豫?

缓慢的编译时间一直是 C/C++ 编程语言最薄弱的环节之一。无论是完整产品构建的几个小时等待,还是在开发者工作站上反复进行的增量构建的 10 分钟等待——其结果是令人沮丧、生产力下降和时间浪费。

令人惊讶的是,这对于大多数开发者来说几乎已成为现实。尽管预编译头和 PC 硬件的改进在一定程度上改善了这种情况(谢天谢地,5-10 小时的构建不再是常态),但中大型软件项目通常每年在编译上浪费数百小时宝贵的开发者时间。

IncrediBuild,由 Xoreax Software 提供,为这个问题引入了一种独特而有效的方法。它与 Microsoft Visual C++ 集成,能在网络中的工作站上静默地分配编译任务,将编译时间缩短 90% 或更多。

IncrediBuild 的“构建监视器”中的视图之一可直观地显示分布式编译的进度。每个文件都根据其编译器消息的严重程度进行着色。

分布式编译

IncrediBuild 基于点对点模型。一个“代理”(Agent)组件安装在网络中的不同机器上,而一个名为“协调器”(Coordinator)的中央组件负责管理编译工作负载。当 IncrediBuild 代理用户启动构建时,远程机器上的代理会被分配为该构建的编译资源。然后,源文件由这些代理编译,构建输出被返回到构建机器。链接最终在启动构建的机器上执行。

将不同的代理分配给当前正在进行的构建的任务由协调器执行。根据对每个代理计算机硬件规格、当前 CPU 可用性和其他参数的了解,协调器会确保在任何给定时间,构建都会利用最强大、最可用的代理。此外,当同时运行多个构建时,协调器的任务是在可用的计算能力之间均匀分配给正在构建的代理。

当作为远程构建的编译资源运行时,代理以低优先级进程执行编译任务,以保持计算机的响应能力。协调器能够考虑每台机器的可用性,有效地最后分配较忙的机器(事实上,只要机器达到一定的最小活动水平,它就会立即停止任何远程编译活动),这使得这一点更加有效。最后,在任何给定时间,IncrediBuild 代理用户都可以暂时禁用其机器上的代理,从而使机器的资源无法被其他代理访问。

IncrediBuild 协调器应用程序充当 IncrediBuild 环境的“控制中心”。将显示正在进行的任何构建活动以及其他有用的数据。

使用 IncrediBuild

IncrediBuild 构建可以从 3 种不同的界面运行
  • Microsoft Visual C++ IDE - IncrediBuild 为 IDE 添加了一个额外的菜单和工具栏,允许直接从开发环境中运行构建。标准 MSVC 构建仍可随时运行,IncrediBuild 不会覆盖任何 MSVC 功能。
  • IncrediBuild 命令行界面 - IncrediBuild 提供强大的命令行界面,允许从脚本、第三方工具和控制台窗口运行构建。
  • IncrediBuild 托盘图标菜单 - IncrediBuild 的托盘图标菜单允许在不需要打开 MS Visual C++ IDE 的情况下运行构建。只需浏览 DSP/DSW 文件(或从最近的构建列表中选择一个)即可开始构建。

运行 IncrediBuild 构建时,MSVC 的标准输出显示被 IncrediBuild 的“构建监视器”替换。这个独特的显示包含您监控构建进度和轻松定位警告/错误消息所需的一切。分布式编译过程的可视化显示将每个编译的源文件显示为进度条,并根据该文件生成的编译器消息的严重程度进行着色。构建输出可以显示整个构建,也可以分别显示每个配置(见下文)。最重要的是,额外的功能,如构建进度条和轻松导航到下一个/上一个错误消息,让生活更轻松。

当从 MSVC IDE 内使用时,一个停靠的构建监视器窗口会显示构建结果。此处显示的是构建监视器的每个项目配置输出视图,以及每个配置的构建进度条。

关于可靠性的一点说明

新 IncrediBuild 用户最常见的担忧之一是:“我怎么能确定我的构建会正确完成?”当在具有不同环境、操作系统、DLL 和 COM 对象安装的机器上分发编译时,这个问题尤其突出。

IncrediBuild 通过“虚拟环境”的概念来解决这个问题。在为远程代理编译时,IncrediBuild 会在构建机器环境的受保护镜像中运行编译。这有几个优点。首先,每当编译器引用源文件、类型库、注册表项等时——它都保证与在构建机器上的类似操作相同。这也意味着 IncrediBuild 不需要任何手动配置即可工作,因为它将始终使用构建机器的环境。另一个好处是 IncrediBuild 不使用机器的文件系统来存储远程源文件,而是使用自己的源文件缓存机制,从而省去了担心不同源文件版本出现在文件夹中的麻烦。

举一个例子来说明“虚拟环境”概念的深度:“即使是用于远程编译的编译器版本也从构建机器镜像。事实上,为了在仅用作编译资源(而不是启动构建)的机器上使用 IncrediBuild 代理,不需要安装 MS Visual C++,因为 IncrediBuild 将始终忽略本地安装的版本并使用镜像的版本。”

结语

IncrediBuild 有机会立即提高开发效率和代码质量。根据您的项目构建时长,其效果可能从显著改进到彻底提升开发团队的效率。在 Xoreax Software 网站上提供的功能齐全的 30 天试用版,让您有机会亲身体验(设置非常简单,只需几分钟)。

有关更多详细信息,请访问 IncrediBuild 下载页面和订购信息,网址为 http://www.xoreax.com

© . All rights reserved.