4

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


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

4

1 回答 1

3

“但它没有效果”

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

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

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

于 2014-04-22T11:32:10.600 回答