-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Regressions in ICU globalization microbenchmarks #77730
Comments
Likely #77336 |
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
Might also be #76985. |
Regressions on arm64 from the same commit range: dotnet/perf-autofiling-issues#9485 |
I am not able to reproduce this regression. I am pretty sure that the regression is not caused by the Array.Initialize change (this method is not called by the microbenchmarks at all) nor the GC changes (the microbenchmarks do not allocate anything). The regressed microbenchmarks typically spent 90+% time in ICU library that comes with the OS. Notice that all regressed cases have The most likely explanation of these regressions is that the system ICU library or globalization settings were updated on the perf machines. |
Sorry about that -- the cross-linking the auto filing system is doing has changed recently and we struggling to make sense of things; seems like a fair number of unrelated things are getting lumped together. |
@jkotas @EgorBo @AndyAyersMS this became clear it is not a globlaization/ICU issue. Any suggestion for who should look at this? Side question, do we support building the runtime repo on Alpine? I am asking because I failed to build it. I am getting errors like:
|
@sblom 's team should look at this and provide access to the environment that reproduces the worst (up to 7x) regressions. I expect that we are going to find that this regression was caused by some kind of change in the environment setup. |
I've created a branch internally forking off of commit 9b16818a which was the commit before the regression was introduced and ran the perf pipeline on it again just now using the current environment and I can't reproduce the regression, it is still showing a runtime of 656.2ns which is what it was before.
This to me indicates that it's not caused by a change in the environment setup, but caused by changes between commit 9b16818a and commit 54b12a83. I will try run the pipeline on commits between these two versions to see if I can isolate which one might have caused the issue. |
I ran the perf pipeline on commit c4341d45 which is a commit in between the two mentioned in the previous comment and I was able to reproduce the perf regression on it. The only other commits between 9b16818 and c4341d4 were definitely unrelated, so I think it is likely that the static linking GC PAL on linux commit is responsible for this regression somehow. I've reached out to dnceng servies to see what I can do about getting access to a machine with the same/similar specs so I can collect some traces and we can better analyse the issue. Will update this issue when I have more information about that. FYI @jkotas |
Thanks @caaavik-msft. I changed the area label to GC. For future investigations, do you have a constructions how we can run the test against different commits? I was trying to build the source on the Alpine container to run there but I couldn't build it. |
Tagging subscribers to this area: @dotnet/gc Issue DetailsRun Information
Regressions in System.Globalization.Tests.StringSearchReprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Globalization.Tests.StringSearch*' Related IssuesRegressions
Improvements
PayloadsHistogramEdge Detector InfoSystem.Globalization.Tests.StringSearch.IsSuffix_DifferentLastChar(Options: (en-US, None, True))
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
|
The way I ran it is going to the internal version of the runtime repo in ADO, branching it at the commit I want to run the pipeline on, then editing the yaml files to make it only run the specific pipelines I care about, then you can run the dotnet-runtime-perf pipeline pointing to your branch. I've gotten access to one of the alpine build machines we use for these benchmarks and am trying to get it built so I can run it and reproduce the regression but am running into some errors which I am trying to work out, once I have gotten it building though, will run PerfCollect to get the info we need to debug it. |
Just an update on this issue, after getting access to a machine with the exact same specs as the build agent, I have been unable to reproduce this regression by running the benchmarks myself, even on the latest version of the runtime branch. I guess the way that the helix job runs things must be different than the way I am running them, but I am not sure why that might be. I'm going to get Drew to take a look at this when he returns from his leave to help with this further as he has a lot more experience in this area. |
This issue has been automatically marked |
This issue has been automatically marked |
CC: @mangod9 |
Doesnt feel like this issue is actionable, @DrewScoggins ? |
This got resolved in January. |
Run Information
Regressions in System.Globalization.Tests.StringSearch
Test Report
Repro
Related Issues
Regressions
Improvements
Payloads
Baseline
Compare
Histogram
Edge Detector Info
Collection Data
System.Globalization.Tests.StringSearch.IsSuffix_DifferentLastChar(Options: (en-US, None, True))
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: