Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSBuild Server #6392

Closed
6 of 7 tasks
Tracked by #5873
rokonec opened this issue Apr 30, 2021 · 1 comment
Closed
6 of 7 tasks
Tracked by #5873

MSBuild Server #6392

rokonec opened this issue Apr 30, 2021 · 1 comment
Assignees
Labels
performance Performance-Scenario-Build This issue affects build performance. triaged
Milestone

Comments

@rokonec
Copy link
Member

rokonec commented Apr 30, 2021

To improve performance of consequent MSBuild execution keep 'Entry MSBuild node' process alive and connect to it when there is a new build requests.

In first version lets use existing MSBULDNOINPROCNODE escape hatch (blocked by #3517).

Final version is yet TBD, but our current thoughts about it are as follows:

  • Entry MSBuild node will host named pipe connection end point.
  • CLI checks existence and busy/ready state of Entry MSBuild node by named mutexes
  • CLI starts MSBuild entry node if not running
  • CLI will connect to running MSBuild entry node and pass it command line arguments
  • CLI fallbacks to current behavior (in process MSBuild dll) if entry node is busy
  • MSBuild entry node process will have floating window TTL of (by default) 15 minutes

This approach will be more beneficial after we implement some kind of preheating (speculative processes start, prebuild, ...). If preheating will not make it into 6.0 we might consider to start Entry MSBuild node in background while compiling by CLI in process loaded MSBuild. This way we will not pay as big price in the very-cold scenarios.

@rokonec rokonec added the needs-triage Have yet to determine what bucket this goes in. label Apr 30, 2021
@rokonec rokonec self-assigned this Apr 30, 2021
@rokonec rokonec added Performance-Scenario-Build This issue affects build performance. performance labels Apr 30, 2021
@AR-May AR-May removed the needs-triage Have yet to determine what bucket this goes in. label May 6, 2021
@rokonec rokonec changed the title MSBuild service MSBuild Server May 7, 2021
@rokonec
Copy link
Member Author

rokonec commented Jun 21, 2021

Feature has been parked into: https://github.com/dotnet/msbuild/tree/feature/msbuild-server-v2--parked

See linked issues for more detail. Works left is estimated to about 3 week/person.

@rokonec rokonec closed this as completed Jun 21, 2021
@ladipro ladipro added this to the VS 17.0 milestone Dec 8, 2021
@AR-May AR-May added the triaged label Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
performance Performance-Scenario-Build This issue affects build performance. triaged
Projects
None yet
Development

No branches or pull requests

3 participants