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

Update _WalkEachTargetPerFramework to walk TFMs in parallel #6018

Merged
merged 1 commit into from
Oct 9, 2024

Conversation

baronfel
Copy link
Contributor

@baronfel baronfel commented Sep 9, 2024

Bug

Fixes: NuGet/Home#13776

Description

This PR changes the MSBuild invocations in this Target to issue parallel build requests for each target where possible. This results in less overhead and more parallelism by default in the build, and in my testing results in a 50% reduction in time taken for this target. This reduction remains consistent as the number of TFMs grows and should be more pronounced as the work done in this
target (i.e. custom user targets) takes more time.

I've included the use of the conventional BuildInParallel property to control this parallelism - if specified the performance is essentially the same as the old version of this target.

Before:
image

After:
image

PR Checklist

  • Meaningful title, helpful description and a linked NuGet/Home issue
  • Added tests (no need, no user facing change)
  • Link to an issue or pull request to update docs if this PR changes settings, environment variables, new feature, etc. (no need, doesn't require new docs).

@baronfel baronfel requested a review from a team as a code owner September 9, 2024 20:05
@baronfel
Copy link
Contributor Author

baronfel commented Sep 9, 2024

cc @zivkan per our discussion

@dotnet-policy-service dotnet-policy-service bot added the Community PRs created by someone not in the NuGet team label Sep 9, 2024
@dotnet-policy-service dotnet-policy-service bot added the Status:No recent activity PRs that have not had any recent activity and will be closed if the label is not removed label Sep 16, 2024
@baronfel
Copy link
Contributor Author

Pinging a few folks for review: @jeffkl @zivkan :)

@dotnet-policy-service dotnet-policy-service bot removed the Status:No recent activity PRs that have not had any recent activity and will be closed if the label is not removed label Sep 16, 2024
@nkolev92 nkolev92 added the Merge next release PRs that should not be merged until the dev branch targets the next release label Sep 19, 2024
@dotnet-policy-service dotnet-policy-service bot added the Status:No recent activity PRs that have not had any recent activity and will be closed if the label is not removed label Sep 27, 2024
@zivkan
Copy link
Member

zivkan commented Sep 27, 2024

waiting for next release, as per label. Maybe we need to update the bot to ignore PRs with the label.

@dotnet-policy-service dotnet-policy-service bot removed the Status:No recent activity PRs that have not had any recent activity and will be closed if the label is not removed label Sep 27, 2024
@nkolev92 nkolev92 removed the Merge next release PRs that should not be merged until the dev branch targets the next release label Sep 27, 2024
@microsoft-github-policy-service microsoft-github-policy-service bot added the Status:No recent activity PRs that have not had any recent activity and will be closed if the label is not removed label Oct 4, 2024
@baronfel
Copy link
Contributor Author

baronfel commented Oct 4, 2024

bot pls. I'm begging you bot.

@microsoft-github-policy-service microsoft-github-policy-service bot removed the Status:No recent activity PRs that have not had any recent activity and will be closed if the label is not removed label Oct 4, 2024
@zivkan zivkan merged commit ea39251 into NuGet:dev Oct 9, 2024
29 checks passed
@baronfel baronfel deleted the patch-1 branch October 9, 2024 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Community PRs created by someone not in the NuGet team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Walk TFMs in parallel when collecting pack outputs
4 participants