【发布时间】:2015-08-15 21:43:26
【问题描述】:
我一直在玩一些大型的 Visual Studio C++ 项目,似乎花费在构建预编译头文件上的时间比构建单个源文件的时间更多。
我已经对项目本身进行了一些更改(启用了/MP 标志并在“工具 ==> 选项”中设置了最大作业数),构建似乎快了 10% 左右,但是几乎没有相同项目的 Linux 版本的改进那么大,当在 make 中指定 -j 选项时,Linux 版本的运行速度快了近 4-5 倍。
首先,是否需要设置任何其他选项以利用多核系统来提高构建速度,尤其是在生成预编译头文件时?
其次,似乎通过启用多处理器支持,我不能再进行“增量构建”了。如果我理解正确,每个“构建”都将与完整的“重建”或“清理、构建”操作相同。是这样吗?最后我检查了一下,如果 makefile 编写正确,GNU makefile 项目就不会受到这个限制,所以像 Visual Studio 这样一个现代且昂贵的工具会遇到这样的问题似乎很奇怪。
谢谢。
【问题讨论】:
-
从我个人的经验来看,通常是链接器需要很长时间。所以我通常禁用 IPO、整个程序优化和链接时间代码生成。这会将所有“昂贵”的步骤移到高度可并行化的主编译中。只有在生产版本中,我才会重新打开所有这些东西。
标签: c++ visual-studio-2010 visual-studio parallel-processing