-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[NativeAOT] System.Linq.Expressions size regression #89527
Comments
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas Issue DetailsDescriptionThe "Stage2" / "TodosAPI" ASP.NET benchmark app's NativeAOT size has regressed in recent builds. As you can see, the size increased from Looking at the mstat diffs, I see most of the size increase coming from System.Linq.Expressions. This leds me to believe this was regressed by #89308. ConfigurationAll Regression?Yes DataThe before and after mstat files can be found in: AnalysisDiffing the attached mstat files in sizoscope shows: cc @MichalStrehovsky @ivanpovazan
|
Looks like we no longer trim the Ref.Emit backend or the |
That is a bit unexpected as both: runtime/src/libraries/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs Line 29 in bcb608e
and Line 19 in bcb608e
are guarded by IsDynamicCodeSupported which should be set to false in NativeAOT scenarios:
I will try to repro and revert if needed. |
Dead branch removal rules are undocumented and unreliable. One needs to basically always re-test if this is shuffled. I think the problem here is that if we're in a situation where there is |
I was able to verify the regression happened between 5b4bbda...d389ab9. To repro:
<ItemGroup>
<FrameworkReference Update="Microsoft.NETCore.App"
RuntimeFrameworkVersion="8.0.0-rc.1.23374.1" />
<PackageReference Include="Microsoft.Dotnet.ILCompiler"
Version="8.0.0-rc.1.23374.1" />
</ItemGroup> With that version, the size on my win-x64 machine is <ItemGroup>
<FrameworkReference Update="Microsoft.NETCore.App"
RuntimeFrameworkVersion="8.0.0-rc.1.23375.8" />
<PackageReference Include="Microsoft.Dotnet.ILCompiler"
Version="8.0.0-rc.1.23375.8" />
</ItemGroup> With that version, the size on my win-x64 machine is |
I have verified that the regression is introduced with: #89308 |
Description
The "Stage2" / "TodosAPI" ASP.NET benchmark app's NativeAOT size has regressed in recent builds.
As you can see, the size increased from
31 MB
to41 MB
.Looking at the mstat diffs, I see most of the size increase coming from System.Linq.Expressions. This leads me to believe this was regressed by #89308.
Configuration
All
Regression?
Yes
Data
The before and after mstat files can be found in:
MStatFiles.zip
Analysis
Diffing the attached mstat files in sizoscope shows:
cc @MichalStrehovsky @ivanpovazan
The text was updated successfully, but these errors were encountered: