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.exe
are 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 jom
the 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 assembly
VS 2012 One minute after the start of assembly
source
share