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

后端 未结 7 552
不思量自难忘°
不思量自难忘° 2021-02-02 10:24

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

相关标签:
7条回答
  • 2021-02-02 11:07

    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).

    0 讨论(0)
  • 2021-02-02 11:14

    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

    0 讨论(0)
  • 2021-02-02 11:15

    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.

    0 讨论(0)
  • 2021-02-02 11:17

    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.

    0 讨论(0)
  • 2021-02-02 11:17

    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".

    0 讨论(0)
  • 2021-02-02 11:20

    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.

    0 讨论(0)
提交回复
热议问题