Enabling Multi-Processor (Parallel) Builds in Visual Studio

Building larger solutions in Visual Studio can be tediously slow. Part of the reason is that the compiler does not make use of multiple CPU cores well. This article shows you how to change that.

Enabling Parallel Builds

Enabling parallel (aka multi-processor, aka multi-core) builds is easy: just add the compiler switch /MP (multi-processor compilation):

Dependencies

/MP is incompatible with several other options and language features. These are discussed in Microsoft’s documentation of the /MP switch. Here is what affected us with uberAgent.

#import

If you use the #import preprocessor directive with /MP you will get the following compiler error:

Error C2813: #import is not supported with /MP

The easiest way to work around that is to specify /MP1 as an additional command-line option for the source file with the #import (yes, for individual files only).

Enable Minimal Rebuild (/Gm)

This is listed as deprecated anyway, so just switch it off.

Build Time Improvements

I did not run any lengthy tests, but here is a quick comparison of a rebuild of our uberAgent project (with multiple dependent projects) with parallel builds off and on:

  • Parallel builds off (default setting): 74 s
  • Parallel builds on: 44 s

The simple changes to the configuration explained above reduced the build time by 41%.

More Information

Minimum Visual Studio Version

We are using Visual Studio 2019. That is what I tested with. Obviously, I cannot give any guarantees for older versions, but from what I read this should apply to any version of Visual Studio going as far back as 2008.

Resources

Comments

Latest Posts

Beautiful Slide Decks from Markdown: Presenting with Slidev

Beautiful Slide Decks from Markdown: Presenting with Slidev
Would you like to get away from PowerPoint and author slide decks in Markdown? Then Slidev may be just what you’re looking for. It’s a web app for presentations. The fact that it’s geared towards developers shouldn’t put you off. After all, who isn’t a developer these days, with AI? Slidev comes with the beautiful Tahta themes and supports features like syntax highlighting and animations. Export options to PDF and PPTX allow for easy sharing. This article shows how to get started.
Applications