我有一个大型的c ++项目,我在IDE中使用MS VS 2012进行编译。
我启用了Multi-processor compilation (/MP)
并且构建开始并行(我知道这是因为在任务管理器中可以看到8个cl.exe
实例)。但是,在完成十几个文件后,构建似乎再次序列化,只剩下一个cl.exe
个实例。
我已检查过不兼容的选项(如here所示),一切似乎都正确。我还使用命令行中的jom
构建,构建速度更快,并且使用所有核心的构建时间都要长得多。
问题:
在VS内并行构建时是否存在限制?
或者是否有一些我可能会失踪的新设置?
欢迎任何建议。
修改:
以下是一些屏幕截图,展示了正在发生的事情。当构建第一次启动时,我会进行大量的编译(请参阅任务人员中的c1.exe的许多实例),但在一分钟左右之后我会遇到一两个实例。这似乎不是编译器限制或项目问题,因为使用jom构建(比使用VS编译器仍然)比在VS IDE中构建快大约4-5倍。