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

asa*_*nko 5 c++ boost visual-c++ boost-msm

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


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

seh*_*ehe 3

“但是没有效果”

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

事实上,我预计(非并行化)构建对于更多 TU 来说会更慢,因为每个 TU 最终都会在标头中包含 99% 的相同代码。预编译头文件可以在一定程度上缓解这种情况。

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