-
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
[Perf] Regressions in System.Buffers.Text.Tests.Base64Tests #72866
Comments
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. |
Seems related to #72727 |
Seeing the same impact on Alpine: dotnet/perf-autofiling-issues#6782 |
Seeing some impact from this change on x64 as well: dotnet/perf-autofiling-issues#6840 dotnet/perf-autofiling-issues#6841 |
Seeing impact on Amd hardware as well: dotnet/perf-autofiling-issues#6849 |
@stephentoub I've just checked this one locally and was able to reproduce the ~15% perf regression. Then I re-run it again but with It means that your change in C# slightly changed layout (the way you pin that string) and invalidated the built-in profile. Once a new profile is collected and updated in this repo the regression should be gone |
Thanks, @EgorBo. I suspected something like that. Should we just close this then? Or wait to see it drop? Moving forward, is there any way we can avoid noise like this? I see these kinds of things not infrequently. |
Hard to tell 🙁 cc @AndyAyersMS @DrewScoggins maybe prior filing an issue we can have a separate run of the benchmark in question with The things is - I closed many perf issues assigned to me as "looks like that thing fixed itself" |
We are set up to do no pgo runs in the perf lab (at least for windows x64) but we hijacked that run to measure OSR. Now that OSR is enabled, we could switch that leg back.
I think in fact the collections are fairly consistent, at least they were last we looked. But the jit is overly sensitive to small differences in the data. This is something I hope to work on during .NET 8. |
Tagging subscribers to this area: @dotnet/area-meta Issue DetailsRun Information
Regressions in System.Perf_Convert
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Perf_Convert*' PayloadsHistogramSystem.Perf_Convert.ToBase64CharArray(binaryDataSize: 1024, formattingOptions: None)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Buffers.Text.Tests.Base64Tests
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Buffers.Text.Tests.Base64Tests*' PayloadsHistogramSystem.Buffers.Text.Tests.Base64Tests.ConvertToBase64CharArray(NumberOfBytes: 1000)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
|
We are also seeing improvements on Arm64: dotnet/perf-autofiling-issues#6859 |
Run Information
Regressions in System.Perf_Convert
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Perf_Convert.ToBase64CharArray(binaryDataSize: 1024, formattingOptions: None)
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Regressions in System.Buffers.Text.Tests.Base64Tests
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Buffers.Text.Tests.Base64Tests.ConvertToBase64CharArray(NumberOfBytes: 1000)
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: