C++如何限制Visual Studio多处理器编译

tvokkenx  于 2022-11-30  发布在  其他
关注(0)|答案(8)|浏览(320)

每次我使用visual studio编译时,我的计算机的其余部分都会爬网,因为visual studio占用了所有的处理器。有没有办法限制visual studio正在使用的处理器的数量,这样我在编译期间仍然可以完成一些工作?
顺便说一句,我正在使用Visual Studio 2013和2015,用C++编程。
谢谢你!

fv2wmkja

fv2wmkja1#

如果您有一个包含许多. cpp文件的C项目,并且不希望一次生成8个,则设置"并行项目生成的最大数量"不是解决办法。要控制该问题,请转到工具选项项目和解决方案VC ++项目设置,然后在生成部分中,将**Maximum Concurrent C Compilations设置为您希望并行编译的. cpp文件的最大数量。默认设置似乎是0**,这显然意味着没有最大数量。我有4个内核/8个线程,将此值设置为4,并且VS现在一次只编译4个文件,而不是8个。
这些说明基于Visual Studio 2017,但我认为有几个版本是这样的。

4c8rllxm

4c8rllxm2#

对于Visual Studio 2015,将“Maximum number of parallel project builds“更改为所需的数字。(可以是m/c中处理器数量的一半)
菜单〉工具〉选项〉项目和解决方案〉生成和运行。编辑值。
VS2015截图

此外,最大并发c编译可以在
菜单〉工具〉选项〉项目和解决方案〉VC
项目设置〉最大并发c++编译〉编辑值。
请注意,如果使用0,则将使用所有CPU。

1rhkuytd

1rhkuytd3#

我发现了一个对我来说很有效的解决方案。手动限制VS进程的关联性。打开任务管理器,转到“详细信息”选项卡,右键单击devenv.exe,选择“设置关联性”。在对话框中取消选中几个核心。就是这样。所有衍生的cl.exe进程将继承关联性,因此不会在未选中的核心上运行。
第一次
此外,请前往为Visual Studio的功能请求投票:https://developercommunity.visualstudio.com/content/idea/436208/limit-cpu-usage-of-visual-studio.html

6ioyuze2

6ioyuze24#

用于C++

*msbuild /p:CL_MPCount=X

其中X是编译器驱动程序的数量。我使用它来限制编译Tensorflow源代码时的CPU利用率。
请阅读以下内容以了解更多详细信息:ms's blog on vs2010 c++ parallel building

0s0u357o

0s0u357o5#

一个更优的答案来自于Mikhail Virovets的https://developercommunity.visualstudio.com/comments/497084/view.html
将编译器进程优先级降低到正常值以下。这意味着它将尽可能多地使用CPU,但不会干扰您正在尝试使用的其他东西。
定义注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\cl.exe\PerfOptions

然后创建一个名为CpuPriorityClass = 5的DWORD值(5表示“低于正常值”)。
请注意,这会影响所有名为“cl.exe”的进程。

zphenhs4

zphenhs46#

/MP选项可以做到这一点。它限制了在构建项目时产生的进程数。因此,在您的情况下,您可以像/MP1/MP[processMax],其中processMax是您希望使用的最大进程数)这样使用它。

6ljaweal

6ljaweal7#

从VS2022版本17.3及更高版本开始,实现这一点的最佳方法是限制构建过程优先级。
如果构建影响了您拥有一个响应的工作环境,那么这就是适合您的特性!
从Visual Studio 2022版本17.3 Preview 1开始,工具-〉选项-〉"项目和解决方案"-〉"生成并运行"-〉"以低进程优先级运行生成"下的新选项允许您降低下一个生成的优先级。如果MSBuild节点已经以上一个优先级运行,然后给它们几分钟的时间让它们超时,或者重新启动IDE以关闭它们。
点击此处了解更多信息。

yeotifhr

yeotifhr8#

如果你运行的是Windows Vista/7(可能是XP,但不确定),这真的很简单。Ctrl +Shift+Esc启动任务管理器。单击“进程”选项卡查找需要更改其处理器关联的进程右键单击该进程单击“设置关联”在此处可以选择进程将使用的处理器。编辑:您必须是管理员才能使其工作。

相关问题