我最近遇到了几个关于改善CMake启用C++项目周转时间的具体方面的问题(比如"我应该在什么级别分配我的构建过程?"或"cmake rebuild_cache 只是一个子目录?"),我是想知道是否有更一般的指导利用CMake提供的特定可能性.如果可能没有跨平台编译时优化,我主要对Visual Studio或基于GNU toochain的方法感兴趣.
我已经意识到并投资了一般推荐的领域来加速C++构建:
更改/优化/微调工具链
优化您的代码库/软件架构(例如,通过减少依赖关系并使用明确定义的子项目 - 单元测试)
投资更好的硬件(SSD,CPU,内存)
喜欢在这里,这里或这里推荐.所以我在这个问题上的重点是第一点.
另外我知道在CMake的Wiki中可以找到的建议:
前者只处理基础(并行make),后者主要处理如何加速解析CMake文件.
为了使这更具体一点,如果我从这里使用MSYS/GNU的100个库获取我的CMake示例,我得到了以下time测量结果:
$ cmake --version
cmake version 3.5.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
$ time -p cmake -G "MSYS Makefiles" ..
-- The CXX compiler identification is GNU 4.8.1
...
-- Configuring done
-- Generating done
-- Build files have been written to: [...]
real 27.03
user …Run Code Online (Sandbox Code Playgroud) c ×1
c++ ×1
cmake ×1
compilation ×1
gnu-make ×1
gold-linker ×1
linker ×1
migration ×1
nmake ×1
performance ×1