如何使用Boost MSM减少编译时间

时间:2014-04-22 10:55:19

标签: c++ visual-c++ boost boost-msm

我的根状态机有大约40个转换(包括4个子状态机)。一切运作良好,但是当我开始提高转换次数时,编译时间显着增加(大型状态机的开发变得地狱)。我尝试使用boost :: msm :: back :: favor_compile_time策略,并将子机器拆分为多个翻译单元,但它没有效果。有人对这个问题有一些解决方法吗? Boost - 1.53,编译器 - MSVC 2012,处理器 - Intel i7


更新:减少时间的最佳方法 - 从项目中删除boost msm

1 个答案:

答案 0 :(得分:2)

  

“但它没有效果”

我认为这个想法是在TU之间拆分可以加快速度/因为/你并不总是需要重建TU,不一定是干净的重建会更快。

事实上,对于更多的TU,我希望(非并行化)构建更慢,因为每个TU最终都包含99%的相同代码。预编译的标题可以稍微缓解一下。

在这方面,将相关标头(预处理器#define)添加到stdafx可能有所帮助。