Ways to speed up build time? (C#/Unmanaged C++)

.net-2.0, c#, c++, msbuild, unmanaged

Solution

Focus on the C++ projects - they are almost guaranteed to be the largest time drains for building.

Some tips on getting the C++ build times down:

- Make sure that you're only including headers that you need in the C++ projects!

- Use forward declarations whenever possible in headers instead of including other headers

- Use the /MP switch to build in parallel, when possible

- Use abstraction effectively

- Be sparing in the use of inline functions, since these cost more at compile time

- Get the dependencies correct, so you're not building more often that required

- Use pre-compiled headers appropriately

Aside from that, if you're talking 2 hour build times, often there is a simple, cheap (in a big picture way) solution, as well:

- Upgrade your hardware to help reduce the computation times

Problem

A legacy app I am working on currenty takes ~2hours to build. The project has about 170 projects with 150 or so being unmanaged C++ and the other 30 C#.Net 2.0. What are some suggestions on ways to improve build times for something like this?

Original source