如何使用Boost MSM缩短编译时间

How to reduce compilation time with Boost MSM

本文关键字:编译 时间 MSM 何使用 Boost      更新时间:2023-10-16

我有大约40个转换的根状态机(包括四个子状态机)。所有操作都很好,但当我开始增加转换次数时,编译时间显著增加(大型状态机的开发变得一团糟)。我尝试使用boost::msm::back::favor_compile_time策略,并将子汉语拆分为多个翻译单元,但没有效果。有人能解决这个问题吗?Boost-1.53,编译器-MSVC 2012,处理器-英特尔i7


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

"但没有效果"

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

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

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