Update _WalkEachTargetPerFramework to walk TFMs in parallel #6018
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 thistarget (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:
After:
PR Checklist