dotnet / dotnet/msbuild

Deliver the multithreaded build performance win

Open
#15,025 0 comments 0 reactions 0 assignees View on GitHub
Area: Performance Epic
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

Performance is one of the most important reasons for the multithreaded MSBuild project. The goal of this epic is to make builds measurably faster in the majority of scenarios when running with `-mt`.

## Steps

- [ ] [#13766](https://github.com/dotnet/msbuild/issues/13766) [#14236](https://github.com/dotnet/msbuild/issues/14236) Make PerfStar numbers reproducible so the baseline can be trusted [size S]
- [ ] [#14020](https://github.com/dotnet/msbuild/issues/14020) [#14839](https://github.com/dotnet/msbuild/issues/14839) Close the multithreaded evaluation regression seen in pipelines [size M]
- [ ] [#13865](https://github.com/dotnet/msbuild/issues/13865) [#13028](https://github.com/dotnet/msbuild/issues/13028) Remove lock and cache contention that limits thread scaling [size M]
- [ ] [#14113](https://github.com/dotnet/msbuild/issues/14113) Cut IPC overhead for tasks that run out of process [size M]
- [ ] [#14210](https://github.com/dotnet/msbuild/issues/14210) Clear the regression multithreading introduced into non-MT builds [size S]
## Stakeholders

Everyone building with `-mt`: .NET SDK CLI users, Visual Studio, and VMR and partner CI — whose build times are the reason multithreaded mode exists.

## Definition of done

`-mt` is faster than the multi-process baseline on the majority of tracked PerfStar scenarios, cold and warm; non-MT builds show no regression from multithreading work; and PerfStar numbers reproduce in manual runs so the result is trustworthy.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the linked issues #13766, #14236, #14020, #14839, #13865, #13028, #14113, and #14210, along with the PerfStar scenarios and -mt build path they reference. Done means reproducible PerfStar results, faster -mt builds than the multi-process baseline in most tracked scenarios, and no non-MT regression.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.