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

As a customer, speed up my first build/run after doing dotnet new #5969

Open
marcpopMSFT opened this issue Dec 14, 2020 · 1 comment
Open
Assignees
Labels
Cost:M Work that requires one engineer up to 2 weeks performance Performance-Scenario-Build This issue affects build performance. Priority:2 Work that is important, but not critical for the release triaged User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@marcpopMSFT
Copy link
Member

marcpopMSFT commented Dec 14, 2020

Initial performance data indicates that the second dotnet run after creating a new application is significantly faster than the first one. Much of that cold-start time is spend spinning up the MSBuild nodes, Roslyn nodes, RAR cache nodes (future), etc.

Since it's highly likely that someone running dotnet new would the turn around and do a dotnet run, we should investigation options for spinning up some of the warm dotnet run processes.

Options.

  • Execute a dotnet build in the background
    • What happens if the user runs dotnet build before this background build is done warming up?
  • Execute a dotnet run in the background
    • We don't actually want to run the application though
  • Targeted starting of various nodes and processes
    • More work but gives us more control over what starts up and when

The cold build had a particularly high CoreCompile call so it may be worth ensuring that any early initialization we do helps with that:

Target: CoreCompile 3,557.447  
@marcpopMSFT marcpopMSFT added performance Performance-Scenario-Build This issue affects build performance. User Story A single user-facing feature. Can be grouped under an epic. Priority:1 Work that is critical for the release, but we could probably ship without Cost:M Work that requires one engineer up to 2 weeks labels Dec 14, 2020
@marcpopMSFT marcpopMSFT added this to the 17.0 milestone May 13, 2021
@marcpopMSFT marcpopMSFT modified the milestones: 17.0, MSBuild 17.1 Jul 9, 2021
@marcpopMSFT marcpopMSFT modified the milestones: MSBuild 17.1, Backlog Sep 10, 2021
@rokonec rokonec added Priority:2 Work that is important, but not critical for the release and removed Priority:1 Work that is critical for the release, but we could probably ship without labels Oct 3, 2023
@BenjaminBrienen
Copy link

How long does it take compared to doing a second (clean) build?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Cost:M Work that requires one engineer up to 2 weeks performance Performance-Scenario-Build This issue affects build performance. Priority:2 Work that is important, but not critical for the release triaged User Story A single user-facing feature. Can be grouped under an epic.
Projects
None yet
Development

No branches or pull requests

5 participants