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
[Perf] NAOT iOS HelloWorld size: 4 Regressions on 5/15/2024 8:03:38 AM #104074
The range for regression is 778cc84...a71a85a. Could it be #102183@MichalStrehovsky? ... but seems unlikely that adding assembly name would cause 5% regression in size...
If this is measuring size with symbols, it would be from that. Symbols should be stripped before measuring size though.
This one should be without symbols (nosymbols in the issue header). With symbols we also saw regression of 6% (slightly bigger than this one) dotnet/perf-autofiling-issues#34369.
I've kicked off a size validation job in MichalStrehovsky/rt-sz#22 (results will be there in ~20 minutes) just to be sure, but that change should only affect symbols (and if it's from that, we should have seen an improvement in January when the regression my PR is fixing was introduced).
I've kicked off a size validation job in MichalStrehovsky/rt-sz#22 (results will be there in ~20 minutes) just to be sure, but that change should only affect symbols (and if it's from that, we should have seen an improvement in January when the regression my PR is fixing was introduced).
Looks like the size validation didn't show any regression. I wonder if it could be something mobile + NAOT specific as it doesn't show in you validation job yet the range doesn't contain anything else related to NAOT.
I've kicked off a size validation job in MichalStrehovsky/rt-sz#22 (results will be there in ~20 minutes) just to be sure, but that change should only affect symbols (and if it's from that, we should have seen an improvement in January when the regression my PR is fixing was introduced).
Looks like the size validation didn't show any regression. I wonder if it could be something mobile + NAOT specific as it doesn't show in you validation job yet the range doesn't contain anything else related to NAOT.
This should really only affect mangled names and mangled names are only used for symbols. Is it possible to get the binary that this is measuring? Just the after binary should be enough to rule out bad symbol stripping configuration.
changed the title [-][Perf] Windows/x64: 4 Regressions on 5/15/2024 8:03:38 AM[/-][+][Perf] NAOT iOS HelloWorld size: 4 Regressions on 5/15/2024 8:03:38 AM[/+]on Jun 27, 2024
And sure enough, the binary is not stripped properly. There should not be any S_P_CoreLib strings in a stripped binary, but there's lots of them. This is from #102183, but it's a benchmark setup issue; stripping doesn't do the right thing.
And sure enough, the binary is not stripped properly. There should not be any S_P_CoreLib strings in a stripped binary, but there's lots of them. This is from #102183, but it's a benchmark setup issue; stripping doesn't do the right thing.
Thanks Michal for pointing to the root cause!
We are applying the same stripping technique for both NativeAOT and MonoAOT to have "fair" comparison stripping only the local symbols (via: strip -x
I took a look at our MAUI measurements and the regression for the range (84b3339...de6897b) containing this change is minimal (0.014 MB) + the MAUI version also changed dotnet/maui@562713c...13942bd so it is likely not even related.
Activity
matouskozak commentedon May 15, 2024
The range for regression is 778cc84...a71a85a. Could it be #102183 @MichalStrehovsky? ... but seems unlikely that adding assembly name would cause 5% regression in size...
MichalStrehovsky commentedon May 15, 2024
If this is measuring size with symbols, it would be from that. Symbols should be stripped before measuring size though.
matouskozak commentedon May 15, 2024
This one should be without symbols (
nosymbolsin the issue header). With symbols we also saw regression of 6% (slightly bigger than this one) dotnet/perf-autofiling-issues#34369.MichalStrehovsky commentedon May 15, 2024
I've kicked off a size validation job in MichalStrehovsky/rt-sz#22 (results will be there in ~20 minutes) just to be sure, but that change should only affect symbols (and if it's from that, we should have seen an improvement in January when the regression my PR is fixing was introduced).
matouskozak commentedon May 16, 2024
Looks like the size validation didn't show any regression. I wonder if it could be something mobile + NAOT specific as it doesn't show in you validation job yet the range doesn't contain anything else related to NAOT.
MichalStrehovsky commentedon May 21, 2024
This should really only affect mangled names and mangled names are only used for symbols. Is it possible to get the binary that this is measuring? Just the after binary should be enough to rule out bad symbol stripping configuration.
matouskozak commentedon May 21, 2024
@LoopedBard3 do you think it is possible to get the binaries? I found the Perf build https://dev.azure.com/dnceng/internal/_build/results?buildId=2451389&view=logs&j=4f320d25-c1ea-5d1a-2cd7-ab8121a51286 but the Artifacts only contains binlogs.
[-][Perf] Windows/x64: 4 Regressions on 5/15/2024 8:03:38 AM[/-][+][Perf] NAOT iOS HelloWorld size: 4 Regressions on 5/15/2024 8:03:38 AM[/+]dotnet-policy-service commentedon Jun 27, 2024
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas
See info in area-owners.md if you want to be subscribed.
matouskozak commentedon Jun 27, 2024
fyi: @ivanpovazan
MichalStrehovsky commentedon Jun 27, 2024
I think the binaries are right there:
Click the "Download iOS Sample App" step.
Click that, follow the JSON to https://dev.azure.com/dnceng/_apis/resources/Containers/17496355?itemPath=iOSSampleAppNoSymbolsHybridGlobalizationTrue%2FiOSSampleAppNoSymbolsHybridGlobalizationTrue.zip.
And sure enough, the binary is not stripped properly. There should not be any
S_P_CoreLibstrings in a stripped binary, but there's lots of them. This is from #102183, but it's a benchmark setup issue; stripping doesn't do the right thing.ivanpovazan commentedon Jun 27, 2024
Thanks Michal for pointing to the root cause!
We are applying the same stripping technique for both NativeAOT and MonoAOT to have "fair" comparison stripping only the local symbols (via:
strip -xruntime/src/tasks/AppleAppBuilder/Xcode.cs
Line 679 in 2d2d59c
That being said, in cases like this, we should check if the MAUI app also regressed (MAUI apps use full stripping):
matouskozak commentedon Jul 2, 2024
I took a look at our MAUI measurements and the regression for the range (84b3339...de6897b) containing this change is minimal (0.014 MB) + the MAUI version also changed dotnet/maui@562713c...13942bd so it is likely not even related.

ivanpovazan commentedon Jul 3, 2024
@matouskozak in that case I would suggest then closing this issue and link the problem we experienced here to #81530