【厚积薄发系列】C++项目总结6—实现云构建提升大型项目编译效率

需求背景:

用C++开发的项目经常会遇到大型的项目,代码量都是百万行级别,参与开发的人多达几十人甚至上百人,那么这些大型项目的日常编译以及持续集成中版本构造中项目编译效率无疑是个很重要的问题。前段时间入组了一个大型C/S架构的项目(目前代码量300万+左右),解决方案中涉及到的子项目多达100多个,参与开发百人之多。很多开发反馈如果代码有大的变动的时候经常会花费近一个小时的代码编译。所以让开发的时间更加专注于编码,提高大项目编译效率势在必行。

优化思路:

1、最常见的也是业界比较流行的分布式编译的引入,也就是联机编译,目前可以直接引入比较成熟的分布式编译工具Incredibuild,这个不多说网上资料很多可以去百度,对于上面300万行级别的大型项目,即使分布式编译的引入,整个项目的rebuild还是要将近1小时左右。

2、开发和版本构造集群电脑配置的提高,如电脑内存、CPU核数、是否有固态硬盘对编译效率都有一定影响。如果公司有能力的情况下可以做这点。

下面讲即使外界条件无法满足的时候也可以正真可以做的:

3、项目配置选项的优化,如是否支持多线程处理、是否优化等,见截图。


4、代码级别的,项目之间的依赖关系清理,减少不必要的依赖和冗余依赖;模块的合理划分;头文件合理引用减少冗余;前置申明的使用减少直接引用头文件;面向接口编程思想减少头文件的变更频率。

最后一点就是标题中提到的云构建:

5、云构建的核心思想就是编译文件缓存共享机制。

具体实现:

主要类图:

服务端:


客户端:


猜你喜欢

转载自blog.csdn.net/lujiang0120/article/details/80372618