我的根状态机有大约40个转换(包括4个子状态机)。一切运作良好,但是当我开始提高转换次数时,编译时间显着增加(大型状态机的开发变得地狱)。我尝试使用boost :: msm :: back :: favor_compile_time策略,并将子机器拆分为多个翻译单元,但它没有效果。有人对这个问题有一些解决方法吗? Boost - 1.53,编译器 - MSVC 2012,处理器 - Intel i7
更新:减少时间的最佳方法 - 从项目中删除boost msm
答案 0 :(得分:2)
“但它没有效果”
我认为这个想法是在TU之间拆分可以加快速度/因为/你并不总是需要重建TU,不一定是干净的重建会更快。
事实上,对于更多的TU,我希望(非并行化)构建更慢,因为每个TU最终都包含99%的相同代码。预编译的标题可以稍微缓解一下。
在这方面,将相关标头(和预处理器#define
)添加到stdafx可能有所帮助。