Open
Description
.NET Native had size optimizations in the structuring of the BCL code to avoid unnecessary generic expansions in the async infrastructure.
We lost these when CoreLibs between the projects were unified. We restored some of it (example: dotnet/corert#6913), but there is likely more that we could do. We could study the old optimizations in the history of the CoreRT repo, or do a new investigation. Not sure how much async changed between then and now.
@eerhardt saw that in a sample 20 MB app using npgsql package, 3 MB of stuff come from the CompilerServices namespace and that feels still a bit excessive.