-
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] Linux/x64: Regressions in System.Collections.Perf_LengthBucketsFrozenDictionary #105328
Comments
Likely caused by: #105131, linked improvements in PR. |
Related regressions from throughout the strength reduction story: |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
Report for the regressions in the win-x64 issues above: https://github.com/jakobbotsch/perf-diff-finder/blob/main/strengthreduction/results.md Of the 15 benchmarks mentioned in those issues only 3 of them have actual strength reductions in a hot method:
|
The regressions from 7/15 are likely caused by #104603 instead. |
The larger regressions in this issue (like For |
Do we have a plan for when we're going to tackle that in general? |
It was in our initial plans for .NET 9 (#93243), but ended up not making it. Personally I hope we can solve this with new perf lab hardware instead... I believe the CPUs on these queues are i7-8700's that are 7 years old at this point. I think it's been a while since the last Intel CPU with the problem was available for sale. |
Here's a report for the 13 win-x64 regressions in dotnet/perf-autofiling-issues#38686 and dotnet/perf-autofiling-issues#38716 from July 15th around #104603: https://github.com/jakobbotsch/perf-diff-finder/blob/main/straighten/results.md Lots of large-scale diffs there which makes it hard. Some notes from just looking at the codegen difference:
|
The first regression around 10th of June is from enabling CET which is Windows only, so that makes sense. The regression around July 15th is the one that on first view would be caused by #104603, but given no regression on Ubuntu it does not seem like the regression is inherent to the codegen. For I don't think there's much more actionable here... let's revisit in .NET 10 with more flowgraph work. |
Run Information
Regressions in System.Collections.Perf_LengthBucketsFrozenDictionary
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_True_FrozenDictionary(Count: 10000, ItemsPerBucket: 1)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 1000, ItemsPerBucket: 5)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 100, ItemsPerBucket: 1)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 100, ItemsPerBucket: 5)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 10, ItemsPerBucket: 1)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 1000, ItemsPerBucket: 1)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 10, ItemsPerBucket: 5)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: