C++ How to limit visual studios multi-processor compilation

For Visual Studio 2015, change "Maximum number of parallel project builds" to desired number. (May be half number of processers in your m/c)

Menu> Tools > Options > Projects and solutions > Build and Run. Edit value.

Screenshot from VS2015

enter image description here

Further, maximum concurrent c++ compilation can be restricted in

Menu> Tools > Options > Projects and solutions > VC++ Project Settings > Maximum concurrent c++ compilation > Edit value.

Please note, if used 0 then all CPU will be used.

enter image description here


Setting the "Maximum number of parallel project builds" is not the answer if you have a single C++ project with lots of .cpp files and you don't want 8 building at once. To control that, go to Tools > Options > Projects and Solutions > VC++ Project Settings, and in the Build section, set Maximum Concurrent C++ Compilations to the max number of .cpp files you want to compile in parallel. The default setting appears to be 0, which apparently means there is no maximum. I have 4 cores/8 threads, and set this value to 4, and VS now only compiles 4 files at a time instead of 8.

These instructions are based on Visual Studio 2017, but I think it's been this way for a few releases.

Setting Max Concurrent C++ Compilations


I found a workaround that actually works for me. Manually restrict affinity for VS process. Open Task Manager, go to Details tab, right click on devenv.exe, select "Set affinity". In the dialog untick several cores. That's it. All spawned cl.exe processes will inherit affinity, and thus won't run on unticked cores.

enter image description here enter image description here

Also, go and cast your vote for a feature request for Visual Studio: https://developercommunity.visualstudio.com/content/idea/436208/limit-cpu-usage-of-visual-studio.html


For C++ Use

*msbuild /p:CL_MPCount=X 

Where X is the number of compiler driver. I use this to limit the CPU utilization when compiling the Tensorflow source code.

Read this for more details: ms's blog on vs2010 c++ parallel building