-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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] Changes at 5/30/2022 5:18:40 PM #70032
Comments
Run Information
Regressions in System.Collections.ContainsFalse<Int32>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.ContainsFalse<Int32>*' PayloadsHistogramSystem.Collections.ContainsFalse<Int32>.Queue(Size: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_UInt16
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_UInt16*' PayloadsHistogramSystem.Tests.Perf_UInt16.TryParse(value: "12345")
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CreateAddAndClear<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CreateAddAndClear<String>*' PayloadsHistogramSystem.Collections.CreateAddAndClear<String>.IDictionary(Size: 512)
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.TryAddDefaultSize<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.TryAddDefaultSize<String>*' PayloadsHistogramSystem.Collections.TryAddDefaultSize<String>.Dictionary(Count: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CtorFromCollectionNonGeneric<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CtorFromCollectionNonGeneric<String>*' PayloadsHistogramSystem.Collections.CtorFromCollectionNonGeneric<String>.Hashtable(Size: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Single
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Single*' PayloadsHistogramSystem.Tests.Perf_Single.Parse(value: "3.4028235E+38")
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 Run Information
Regressions in System.Tests.Perf_String
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_String*' PayloadsHistogramSystem.Tests.Perf_String.Replace_String(text: "This is a very nice sentence", oldValue: "bad", newValue: "nice")
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.AddGivenSize<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.AddGivenSize<String>*' PayloadsHistogramSystem.Collections.AddGivenSize<String>.Dictionary(Size: 512)
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_SByte
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_SByte*' PayloadsHistogramSystem.Tests.Perf_SByte.ToString(value: 127)
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in LinqBenchmarks
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'LinqBenchmarks*' PayloadsHistogramLinqBenchmarks.Order00ManualX
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CtorFromCollection<Int32>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.CtorFromCollection<Int32>*' PayloadsHistogramSystem.Collections.CtorFromCollection<Int32>.ImmutableSortedSet(Size: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Run Information
Regressions in System.Tests.Perf_Decimal
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Decimal*' PayloadsHistogramSystem.Tests.Perf_Decimal.TryParse(value: "123456.789")
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Collections.TryAddGiventSize<String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.TryAddGiventSize<String>*' PayloadsHistogramSystem.Collections.TryAddGiventSize<String>.Dictionary(Count: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.MathBenchmarks.Double
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.MathBenchmarks.Double*' PayloadsHistogramSystem.MathBenchmarks.Double.Min
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Text.Json.Tests.Perf_Booleans
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Text.Json.Tests.Perf_Booleans*' PayloadsHistogramSystem.Text.Json.Tests.Perf_Booleans.WriteBooleans(Formatted: False, SkipValidation: False)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository |
Possibly related #69878. Noting this has a lot of issues, many may be noise. |
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. |
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsRun Information
Regressions in System.Tests.Perf_Int32
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Int32*' PayloadsHistogramSystem.Tests.Perf_Int32.Parse(value: "12345")
Description of detection logic
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
Regressions in System.Tests.Perf_UInt32
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_UInt32*' PayloadsHistogramSystem.Tests.Perf_UInt32.TryParse(value: "4294967295")
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.IO.Tests.Perf_Path
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.IO.Tests.Perf_Path*' PayloadsHistogramSystem.IO.Tests.Perf_Path.GetFileName
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.ContainsKeyTrue<Int32, Int32>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.ContainsKeyTrue<Int32, Int32>*' PayloadsHistogramSystem.Collections.ContainsKeyTrue<Int32, Int32>.IDictionary(Size: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Double
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Double*' PayloadsHistogramSystem.Tests.Perf_Double.TryParse(value: "-1.7976931348623157e+308")
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Buffers.Text.Tests.Utf8FormatterTests
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Buffers.Text.Tests.Utf8FormatterTests*' PayloadsHistogramSystem.Buffers.Text.Tests.Utf8FormatterTests.FormatterUInt64(value: 12345)
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Int16
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Tests.Perf_Int16*' PayloadsHistogramSystem.Tests.Perf_Int16.TryParse(value: "32767")
Description of detection logic
Description of detection logic
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Text.Tests.Perf_StringBuilder
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Text.Tests.Perf_StringBuilder*' PayloadsHistogramSystem.Text.Tests.Perf_StringBuilder.AppendLine_Strings
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.ContainsKeyTrue<String, String>
Reprogit clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net6.0 --filter 'System.Collections.ContainsKeyTrue<String, String>*' PayloadsHistogramSystem.Collections.ContainsKeyTrue<String, String>.IDictionary(Size: 512)
Description of detection logic
DocsProfiling workflow for dotnet/runtime repository
|
I have been looking at Profiling shows we spend more time in The static base helper is called from
All this suggests some kind of microarchitectural issue, but seems hard to believe it could affect all the benchmarks here and also a similar set on Ubuntu. Looking at recent history though another possibility suggests itself: The regression is now gone, and the change that removed it was #70144. That change removed a chk/release diff from the jit, and my investigations above were done with a checked jit, so perhaps I wasn't seeing the actual codegen for some of the methods. (though this is not entirely satisfactory -- as I can reproduce slowdowns even with a checked jit...). But presumably the problem that was introduced in #68869 could have been exacerbated by #69878 before being (largely) fixed by #70144. Looking at some of the other reported regressions here we see similar patterns: with a few exceptions Looks like I need to dig through all of these and filter the set down to the ones where the regression persists even after #70144. |
There were 44 tests flagged as regressions above. Looking at the recent history
Will focus on the regressions that have persisted, in particular these two to start: |
Dup of #70159 |
Run Information
Regressions in System.Tests.Perf_Int32
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Tests.Perf_Int32.Parse(value: "12345")
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
Regressions in System.Tests.Perf_UInt32
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Tests.Perf_UInt32.TryParse(value: "4294967295")
Description of detection logic
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.IO.Tests.Perf_Path
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.IO.Tests.Perf_Path.GetFileName
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
Run Information
Regressions in System.Collections.ContainsKeyTrue<Int32, Int32>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Collections.ContainsKeyTrue<Int32, Int32>.IDictionary(Size: 512)
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Tests.Perf_Double
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Tests.Perf_Double.TryParse(value: "-1.7976931348623157e+308")
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
Run Information
Regressions in System.Buffers.Text.Tests.Utf8FormatterTests
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Buffers.Text.Tests.Utf8FormatterTests.FormatterUInt64(value: 12345)
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
Run Information
Regressions in System.Tests.Perf_Int16
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Tests.Perf_Int16.TryParse(value: "32767")
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
Run Information
Regressions in System.Text.Tests.Perf_StringBuilder
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Text.Tests.Perf_StringBuilder.AppendLine_Strings
Description of detection logic
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.ContainsKeyTrue<String, String>
Test Report
Repro
Payloads
Baseline
Compare
Histogram
System.Collections.ContainsKeyTrue<String, String>.IDictionary(Size: 512)
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: