很长的编译时间

0 c++ boost waf

我正在开发一个包含数千个源文件的大型解决方案,由于使用了Boost和依赖性问题,其中一些可能有超过一千个包含.在12核Xeon E5-2690 v2机器(Windows 7)上并行编译时,使用Waf 1.7.13重建解决方案需要4个小时.我该怎么做才能加快速度?

Chr*_*ckl 5

想到的一些事情:

  • 使用前向声明和PIMPL.
  • 检查代码库,看看在正常的类或函数是否足够时是否创建了不必要的模板.
  • 尝试实现自己的模板,在非通用实现方面的工作void*在适用情况下,仅仅是作为类型安全包装的模板(请参阅"第42项:使用私有继承明智",在"更有效的C++"的一个很好的例子).
  • 检查编译器的文档以获取预编译的头文件.
  • 重构应用程序的整个体系结构,以便有更多的内部库和更小的应用程序层,目标是从长远来看,库变得如此稳定,以至于您不必一直重建它们.
  • 试验优化标志.看看你是否可以在几个特定的​​编译单元中关闭优化,其中优化不会在执行速度或二进制大小方面产生可测量的差异,但显着增加了编译时间.