Why can VS 2012 build in parallel on some of my cpp files?

I have a big C ++ project that I am compiling with MS VS 2012 from the IDE.

I turned Multi-processor compilation (/MP)it on and the assembly starts in parallel (I know this because 8 instances cl.exeare visible in the task manager). However, after a dozen or so files have been completed, the assembly seems to be serialized and only one instance remains cl.exe.

I checked incompatible options (as indicated here ) and everything seems to be correct. I also built using jomthe command line, and the build is much faster, and all the kernels have a much larger part of the build time.

Questions:
Is there a limitation when building in parallel in VS?
Or are there any new settings that I can skip?

Any suggestions are welcome.

EDIT

Here are some screenshots showing what is happening. When the build starts, I get a lot of compilation (see Lots of instances of c1.exe in Task Man), but after a minute or so I got to one or two instances. This doesn't seem like a compiler restriction or a problem with the project, because creating with jom is about 4-5 times faster (using the VS compiler) than creating from the VS IDE.

VS 2012 Immediately after starting the assembly
VS 2012 Immediately after starting assembly VS 2012 One minute after the start of assemblyVS 2012 One minute after the start of assembly

+4
source share

Source: https://habr.com/ru/post/1612610/


All Articles