Every time I compile using visual studio the rest of my computer crawls because visual studio is hogging all the processors. Is there a way to limit the number of processors tha
The /MP
option might do it. It limits the number of processes that are spawned when you build a project. So, in your case, you would use it like this /MP1
(/MP[processMax]
, where processMax
is the maximum amount of processes that you want to use).
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
If you're running Windows Vista/7 (possibly XP, but not sure) it's really rather simple. Type in: Control+Shift+Esc to get your taskmanager up. Click on the Processes tab Find the process that needs its processor affinity changed Right-click on the process Click on "Set Affinity" Here you can select which processor(s) your process will use. EDIT: You have to be administrator to get this to work.
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.
A more optimal answer comes from Mikhail Virovets at https://developercommunity.visualstudio.com/comments/497084/view.html
Decrease the compiler process priority to below normal. This means it will use as much CPU as possible but without interfering with other things you're trying to use.
Define a registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\cl.exe\PerfOptions
Then create a DWORD value named CpuPriorityClass
= 5 (5 means "below normal").
Note that this affects all processes named "cl.exe".
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
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.