[generator] Avoid C#11 delegate cache overhead. #1053
Merged
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.
Fixes: #1034
Context: dotnet/roslyn#62832 (comment)
On a recent .NET 7 bump, we found a ~4.5% app size regression related to a new C# 11 delegate feature.
Instead of emitting e.g.
generatorshould instead emit:This should avoid a C#11 "caching method group conversion", allowing
Mono.Android.dllassembly size to be ~unchanged between C#10 and C#11.Test JI bump with this change is green: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=6867774&view=results.