如何在Visual Studio解决方案构建期间限制并行cl.exe进程的数量?

Vas*_*kin 6 c++ visual-studio visual-c++ visual-studio-2013 visual-c++-2013

我最近注意到,一旦我开始构建我正在使用的Visual Studio解决方案(~200个C++项目),我得到了大量的cl.exe进程. 任务管理器截图

我对并行运行的几个cl.exe的事实并不感到惊讶,因为我的项目设置了/MP选项. 其中一个项目中的项目设置

但我希望它们的数量会受到Visual Studio"选项"中以下设置的限制. Visual Studio设置(工具 - >选项)

我认为在4核PC上并行运行数十个进程并不是构建解决方案的最有效方法.

所以,基本上我有两个问题:

  • 为什么我会观察到这种行为?
  • 是否可以限制cl.exe实例数量?

PS我通常使用Visual Studio 2013 Update 4编译我的解决方案,但Visual Studio 2017可以观察到相同的行为.

Sur*_*urt 5

我认为你需要阅读这篇文章,其中的结论是你需要设置你的编译以适应 VS 的世界理念。

另外,根据运行该项目的实际 PC,将并行项目的数量限制为 2-3 个。如果您的 PC 是一个拥有 16 个以上核心的怪物,您可能可以提升 1-2 个。

理想情况下,VS 应该提供使用 X 线程的选项,但可惜。


小智 5

要限制 cl.exe 的数量,您应该使用此选项(至少它存在于 MSVC 2015 中)。默认为零表示“CPU 数量”(如果我没记错的话)。

VC++ 项目设置\最大并发 C++ 编译