我开发/维护一个需要很长时间才能构建的应用程序(例如,完整构建需要花费超过六个小时!).在花了大部分时间构建我们的应用程序之后,我开始研究改进构建时间的方法.Stack Overflow问题的建议如下:
我想更多地了解如何为MSBuild/Visual Studio构建系统执行第三个选项(分布式构建).
Ben*_*oît 16
请访问http://www.xoreax.com/获取Incredibuild.它不是免费的,但是我们使用它并且非常令人印象深刻.它与Visual Studio完美集成,使用起来非常简单.你可能偶尔遇到问题,但绝对值得一看.
一旦安装完成,在Visual Studio中,原则是使用"使用Incredibuild构建解决方案"菜单条目而不是"构建解决方案".所有需要的文件都透明地传输到远程计算机,然后下载输出文件.
小智 7
在过去的十年中,我花了太多时间使C++构建变得更快,并行构建可以创造奇迹,但简单的事情有时会产生惊人的差异.
你没有说明很多细节,所以我会问......
项目的规模是多少?多少源文件等.我过去使用的度量标准是每个源模块(.cpp)平均定位一秒.从200到32,000(不是拼写错误!)行的来源,这在我过去作为衡量标准运作良好.
您的构建机器的规格是什么,它只是一台构建机器还是同时用于其他工作?傻慢的硬盘,太少的RAM,其他过程使用; 所有这些都会对建造时间造成灾难性影响.
您是在构建单片静态库和应用程序吗?如果是这样,有时转换为DLL文件将导致较低的总体构建时间,因为它将使各个链接单元的数量下降.对于使用链接时代码生成的优化构建尤其如此.
您的项目是否有效地使用预编译头?如果您的项目设置为自动生成预编译头,那么我断言您应该通过关闭所有预编译的头文件使用来测试构建.在Visual Studio 2003和Visual Studio 2005中,我发现这实际上比自动生成更快,更可靠.正确的预编译头文件(由一个仅执行该文件并由所有其他文件使用的文件生成)似乎是最佳构建速度的过程.遗憾的是,它是一种真正的黑色艺术,并且在某个特定项目中获得最佳PCH内容有些反复试验 - 并且该内容在项目的生命周期内不一定是稳定的.
除了并行性任务之外,上述内容只会有所帮助.
| 归档时间: |
|
| 查看次数: |
14458 次 |
| 最近记录: |