-
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] Linux/x64: 16 Regressions on 2/5/2024 1:05:09 PM #98370
Comments
Diff. Maybe #96843 or #97908. cc @jakobbotsch @EgorBo |
I confirmed locally that it's #96843 (doesn't repro on a commit before that change and reproduced before my change). cc @jakobbotsch the best example to take is dotnet/perf-autofiling-issues#29066 Windows-X64 Perf_decimal.Floor (at the bottom of that page). ASM diffs: https://www.diffchecker.com/zcGeHkoF/ ("before" is on the left). PS: there is no real perf difference in that decimal benchmark on my cpu, but there are diffs. At the same time I was able to repro a perf regression on Perf_Enun benchmark there |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsRun Information
Regressions in System.Collections.CtorFromCollection<Int32>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CtorFromCollection<Int32>*' PayloadsSystem.Collections.CtorFromCollection<Int32>.Dictionary(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Collections.CtorFromCollection<Int32>.SortedList(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Sort<BigStruct>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Sort<BigStruct>*' PayloadsSystem.Collections.Sort<BigStruct>.Array_ComparerClass(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Collections.Sort<BigStruct>.Array_Comparison(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Tests.Perf_Enum
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Enum*' PayloadsSystem.Tests.Perf_Enum.TryParseGeneric_Flags(text: "Red, Orange, Yellow, Green, Blue")ETL FilesHistogramJIT DisasmsSystem.Tests.Perf_Enum.Parse_Flags(text: "Red, Orange, Yellow, Green, Blue")ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Sort<IntStruct>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Sort<IntStruct>*' PayloadsSystem.Collections.Sort<IntStruct>.List(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Collections.Sort<IntStruct>.Array(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Buffers.Text.Tests.Utf8ParserTests
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Buffers.Text.Tests.Utf8ParserTests*' PayloadsSystem.Buffers.Text.Tests.Utf8ParserTests.TryParseInt64(value: 9223372036854775807)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Perf_Frozen<Int16>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Perf_Frozen<Int16>*' PayloadsSystem.Collections.Perf_Frozen<Int16>.TryGetValue_True(Count: 64)ETL FilesHistogramJIT DisasmsSystem.Collections.Perf_Frozen<Int16>.TryGetValue_True(Count: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.Perf_DefaultFrozenDictionary
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Perf_DefaultFrozenDictionary*' PayloadsSystem.Collections.Perf_DefaultFrozenDictionary.TryGetValue_True_FrozenDictionary(Count: 100)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Numerics.Tests.Perf_BigInteger
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_BigInteger*' PayloadsSystem.Numerics.Tests.Perf_BigInteger.Divide(arguments: 1024,512 bits)ETL FilesHistogramJIT DisasmsSystem.Numerics.Tests.Perf_BigInteger.ToStringD(numberString: 123)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.ContainsKeyFalse<Int32, Int32>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsKeyFalse<Int32, Int32>*' PayloadsSystem.Collections.ContainsKeyFalse<Int32, Int32>.ConcurrentDictionary(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Collections.CreateAddAndClear<Int32>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CreateAddAndClear<Int32>*' PayloadsSystem.Collections.CreateAddAndClear<Int32>.Array(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository
|
Thanks @EgorBo. That change was supposed to give preheaders sane block weights (previously they just downright didn't make sense in some cases). I'll double check that the block weights on the preheaders make more sense now than before. If they do it's probably something to come back to later in .NET 9 since we are expecting several more rounds of churn around the block layout algorithm and the problem might be in there. |
It does look like a bug in the new weight logic. |
Run Information
Regressions in System.Collections.CtorFromCollection<Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.CtorFromCollection<Int32>.Dictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.CtorFromCollection<Int32>.SortedList(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.Sort<BigStruct>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.Sort<BigStruct>.Array_ComparerClass(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Sort<BigStruct>.Array_Comparison(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Tests.Perf_Enum
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Tests.Perf_Enum.TryParseGeneric_Flags(text: "Red, Orange, Yellow, Green, Blue")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Enum.Parse_Flags(text: "Red, Orange, Yellow, Green, Blue")
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.Sort<IntStruct>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.Sort<IntStruct>.List(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Sort<IntStruct>.Array(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Buffers.Text.Tests.Utf8ParserTests
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Buffers.Text.Tests.Utf8ParserTests.TryParseInt64(value: 9223372036854775807)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.Perf_Frozen<Int16>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.Perf_Frozen<Int16>.TryGetValue_True(Count: 64)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_Frozen<Int16>.TryGetValue_True(Count: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.Perf_DefaultFrozenDictionary
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.Perf_DefaultFrozenDictionary.TryGetValue_True_FrozenDictionary(Count: 100)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Numerics.Tests.Perf_BigInteger
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Numerics.Tests.Perf_BigInteger.Divide(arguments: 1024,512 bits)
ETL Files
Histogram
JIT Disasms
System.Numerics.Tests.Perf_BigInteger.ToStringD(numberString: 123)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.ContainsKeyFalse<Int32, Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.ContainsKeyFalse<Int32, Int32>.ConcurrentDictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.CreateAddAndClear<Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.CreateAddAndClear<Int32>.Array(Size: 512)
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: