dotnet / dotnet/msbuild

Is There Any Documentation That Describes How Parallel Builds Work?

Open
#5,058 1 comment 1 reaction 0 assignees View on GitHub
Area: Documentation triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

We are trying to tune our build servers to speed up build times and we are looking for documentation on how Parallel Builds actually work in MSBuild; with special focus to C#.

There is not a wiki page, and I am not smart enough to chase this in code. If I could be given a pointer on where to start I can dig from there. There is good discussion on #74 which gives a little background (but focuses more on C++), are there other places that do a more in-depth dive?

Historically we have naively assumed that looking at our dependency graph in a breadth-first manner would give us a good gauge for optimal core/worker allocation. However we do not believe that this accurately depicts what MSBuild does. Rather it appears that MSBuild, when given a solution file, will attempt to crawl the dependency tree in a depth-first manner. It is unclear if this is by design or just an artifact of the current implementation.

What we are trying to find is a way to determine a rough estimate (simply by evaluating the dependency tree, without building) on the value of adding N+1 cores to an existing build instance. Is that even possible?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.