关注c++编译速度

早在今年的9月,我的一个项目,就面临着编译时间超长的问题,昨天我做过编译速度测试,使用 vc7.1,cl.exe在Rebuild过程中,cpu时间消耗近10分钟,整个项目多大呢?仅仅8000多行代码(当然,不包括一些底层库),而自己的另外一个近6万行代码的项目,rebuild一次也只需要3分钟左右的时间。

其实原因自己也很清楚,使用了过多的template,include了很多不必要的头文件,等等

但一直都没有下决心来改善这个问题,前几天看到云风关于c++预编译头文件的评论,他提到要对头文件进行优化,不应该学windows那样,为了方便,把所有东西全部都放在windows.h中。

我也试着对头文件进行了一次优化,首先将不必要的头文件尽量从基础头文件中清除(我项目里,一般都有一个BaseDef.h,类似MS的stdafx.h),考虑到一些实现的需要,将很多可能会用到的class,在BaseDef.h中声明出来,如果有文件确实需要使用到该class,在相应的源文件内include 该class 的定义头文件

这样下来,我的那个8000多行代码的项目,编译速度大约提高了近两倍,cpu时间消耗3分钟多一点

这样还是不够,我仔细的观察vc的编译输出,发现有一系列文件编译速度很慢(这个只能凭眼睛来看,不知道有什么方法来得到每个.cpp的编译消耗......),找到它们编译过慢的原因(include的一个头文件里面,使用到了boost.,而且,include了boost的头文件.....),接下来就是对该头文件进行优化,终于把boost的头文件移出该头文件

这样下来,我再rebuild一下项目,发现cpu消耗仅仅50多秒,比最初提高了10倍多,爽阿~~~

其实,编译速度也是可以优化的:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值