You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Problem with runtime async in .NET 11 RC1: unexpectedly larger binary size #133954
There was some more discussion on Discord and notably it looked like various things like TimeZoneInfo were being indirectly rooted
Paths like Main->NamedPipeServerStream->SR.get_InvalidOperation_PipeAlreadyConnected->ResourceManager->ResourceReader.LoadObjectV2->DateTime.FromBinary->TimeZoneInfo.cctor for example
It might be more general cases of the static constructor trimming that got done for #132576 and which is included for RC2 (but not RC1)
with a different standalone sample, I see the regression too
notably RC2 is smaller than RC1, but the gap between runtime-async=off vs on is even larger (bigger regression)
looks to generally be because the substituted IL only works with EcmaMethodIL and so it fails to fold the resource accesses because NativeAotILProvider.AsyncMethodIL fails that check
so we basically get this and it stays rooted due to not folding
Activity
dotnet-policy-service commentedon Sep 15, 2026
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.
tannergooding commentedon Sep 15, 2026
There was some more discussion on Discord and notably it looked like various things like
TimeZoneInfowere being indirectly rootedPaths like
Main->NamedPipeServerStream->SR.get_InvalidOperation_PipeAlreadyConnected->ResourceManager->ResourceReader.LoadObjectV2->DateTime.FromBinary->TimeZoneInfo.cctorfor exampleIt might be more general cases of the static constructor trimming that got done for #132576 and which is included for RC2 (but not RC1)
dotnet-policy-service commentedon Sep 15, 2026
Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.
tannergooding commentedon Sep 15, 2026
with a different standalone sample, I see the regression too
notably RC2 is smaller than RC1, but the gap between runtime-async=off vs on is even larger (bigger regression)
looks to generally be because the substituted IL only works with
EcmaMethodILand so it fails to fold the resource accesses becauseNativeAotILProvider.AsyncMethodILfails that checkso we basically get this and it stays rooted due to not folding
[release/11.0] Fix NativeAOT resource string inlining for async IL (#…