Repository navigation
[Perf] Regressions from "Remove BBJ_NONE" #95646
Description
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.ContainsFalse<Int32>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 14.72 μs | 15.81 μs | 1.07 | 0.24 | False | ||||
| 18.53 μs | 23.86 μs | 1.29 | 0.27 | False | ||||
| 18.31 μs | 20.77 μs | 1.13 | 0.14 | False | ||||
| 16.48 μs | 17.81 μs | 1.08 | 0.00 | True |
Repro
General 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.ContainsFalse<Int32>*'Details
Payloads
System.Collections.ContainsFalse<Int32>.ImmutableHashSet(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.ContainsFalse<Int32>.Queue(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.ContainsFalse<Int32>.ImmutableSortedSet(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.ContainsFalse<Int32>.SortedSet(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Tests.Perf_Uri
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 32.29 ns | 45.63 ns | 1.41 | 0.19 | True |
Repro
General 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_Uri*'Details
Payloads
System.Tests.Perf_Uri.EscapeDataString(input: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Tests.Perf_Int128
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 76.42 ns | 93.85 ns | 1.23 | 0.01 | True | ||||
| 76.59 ns | 93.50 ns | 1.22 | 0.01 | True | ||||
| 75.39 ns | 94.42 ns | 1.25 | 0.01 | True | ||||
| 75.81 ns | 94.54 ns | 1.25 | 0.01 | True |
Repro
General 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_Int128*'Details
Payloads
System.Tests.Perf_Int128.TryParse(value: "170141183460469231731687303715884105727")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Int128.TryParseSpan(value: "170141183460469231731687303715884105727")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Int128.ParseSpan(value: "170141183460469231731687303715884105727")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Int128.Parse(value: "170141183460469231731687303715884105727")
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Memory.Span<Char>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 15.20 ns | 16.75 ns | 1.10 | 0.09 | False | ||||
| 15.65 ns | 21.65 ns | 1.38 | 0.11 | False | ||||
| 13.54 ns | 15.32 ns | 1.13 | 0.48 | False | ||||
| 15.61 ns | 23.28 ns | 1.49 | 0.08 | True |
Repro
General 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.Memory.Span<Char>*'Details
Payloads
System.Memory.Span<Char>.Clear(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Char>.LastIndexOfAnyValues(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Char>.Reverse(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Char>.IndexOfAnyThreeValues(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Tests.Perf_Enum
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 77.66 ns | 87.05 ns | 1.12 | 0.13 | False | ||||
| 77.70 ns | 81.64 ns | 1.05 | 0.10 | False | ||||
| 76.41 ns | 86.16 ns | 1.13 | 0.12 | False |
Repro
General 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*'Details
Payloads
System.Tests.Perf_Enum.InterpolateIntoSpan_NonFlags(value: 42)
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Enum.InterpolateIntoStringBuilder_Flags(value: 32)
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Enum.InterpolateIntoStringBuilder_NonFlags(value: 42)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in Benchstone.MDBenchI.MDAddArray2
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 10.94 ms | 12.05 ms | 1.10 | 0.39 | False |
Repro
General 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 'Benchstone.MDBenchI.MDAddArray2*'Details
Payloads
Benchstone.MDBenchI.MDAddArray2.Test
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in Benchstone.BenchI.CSieve
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 3.52 ms | 4.25 ms | 1.21 | 0.00 | True |
Repro
General 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 'Benchstone.BenchI.CSieve*'Details
Payloads
Benchstone.BenchI.CSieve.Test
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Tests.Perf_String
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 36.84 ns | 40.61 ns | 1.10 | 0.11 | False | ||||
| 82.84 ns | 113.58 ns | 1.37 | 0.04 | False | ||||
| 32.25 ns | 36.42 ns | 1.13 | 0.10 | False | ||||
| 32.61 ns | 36.20 ns | 1.11 | 0.08 | False | ||||
| 2.70 μs | 3.57 μs | 1.32 | 0.25 | False | ||||
| 37.16 ns | 40.65 ns | 1.09 | 0.09 | False |
Repro
General 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_String*'Details
Payloads
System.Tests.Perf_String.ToUpper(s: "This is a much longer piece of text that might benefit more from vectorization.")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_String.IndexerCheckPathLength
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_String.ToUpperInvariant(s: "This is a much longer piece of text that might benefit more from vectorization.")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_String.ToLowerInvariant(s: "This is a much longer piece of text that might benefit more from vectorization.")
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_String.Concat_CharEnumerable
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_String.ToLower(s: "This is a much longer piece of text that might benefit more from vectorization.")
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 2158031420214184d22a29029ff24420472fcaa0 |
| Compare | e07f80ac344b291b54a3fd5a333906782ab4809e |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.IterateFor<String>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 9.61 μs | 10.36 μs | 1.08 | 0.10 | False |
Repro
General 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.IterateFor<String>*'Details
Payloads
System.Collections.IterateFor<String>.ImmutableSortedSet(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

























Activity
performanceautofiler commentedon Dec 5, 2023
Run Information
Regressions in System.Collections.ContainsFalse<String>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Collections.ContainsFalse<String>.FrozenSet(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in PerfLabTests.CastingPerf
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
PerfLabTests.CastingPerf.ObjFooIsObj2
ETL Files
Histogram
JIT Disasms
PerfLabTests.CastingPerf.IFooFooIsIFoo
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_VectorOf<Int16>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Numerics.Tests.Perf_VectorOf<Int16>.DivisionOperatorBenchmark
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in SciMark2.kernel
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
SciMark2.kernel.benchFFT
ETL Files
Histogram
JIT Disasms
SciMark2.kernel.benchSparseMult
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.IterateFor<Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Collections.IterateFor<Int32>.ImmutableSortedSet(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in Benchstone.BenchI.Array1
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
Benchstone.BenchI.Array1.Test
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.IndexerSet<Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Collections.IndexerSet<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.Memory.ReadOnlySpan
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Memory.ReadOnlySpan.IndexOfString(input: "だだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだxだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだ", value: "x", comparisonType: Ordinal)
ETL Files
Histogram
JIT Disasms
System.Memory.ReadOnlySpan.IndexOfString(input: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", value: "X", comparisonType: Ordinal)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Text.Perf_Utf8Encoding
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Text.Perf_Utf8Encoding.GetByteCount(Input: EnglishMostlyAscii)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Utf8Encoding.GetByteCount(Input: Greek)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Utf8Encoding.GetByteCount(Input: Chinese)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Utf8Encoding.GetByteCount(Input: Cyrillic)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.MathBenchmarks.Single
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.MathBenchmarks.Single.ScaleB
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in Burgers
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
Burgers.Test2
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Text.Encodings.Web.Tests.Perf_Encoders
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Text.Encodings.Web.Tests.Perf_Encoders.EncodeUtf8(arguments: Url,�2020,16)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
[-][Perf] Linux/x64: 43 Regressions on 11/28/2023 1:58:26 PM[/-][+][Perf] Regressions from "Remove BBJ_NONE"[/+]EgorBo commentedon Dec 5, 2023
We suspect #94239 cc @amanasifkhalid
EgorBo commentedon Dec 5, 2023
Also:
x64:
arm64:
amanasifkhalid commentedon Dec 5, 2023
Looking at the asmdiffs from that PR, code size is a net improvement, but some collections were a net regression in FullOpts (in particular,
benchmarks.run_pgo).This change is part of a much larger work item that will (hopefully) be a net perf improvement. Is there anything we can/should do to address these transient regressions in the meantime?
AndyAyersMS commentedon Dec 5, 2023
I would recommend something like:
You can look at #84264 or #87194 as examples.
Also look at improvements, since just looking at regressions is going to give you an unbalanced picture of the impact of the change. If the improvements largely outweigh the regressions and the regressions are not things we can easily fix we may just decide to live with things as is.
AndyAyersMS commentedon Dec 5, 2023
Also I'll be going through the same process with #95645...
amanasifkhalid commentedon Jul 19, 2024
Updated chart:
1.55
1.31
1.10
1.13
1.16
1.10
1.11
1.12
1.13
1.13
1.09
1.08
1.32
1.14
1.10
1.06
1.10
1.17
1.07
1.09
1.07
1.06
1.07
1.07
1.07
1.07
1.07
1.12
1.25
1.06
1.06
1.06
1.41
1.23
1.07
1.08
1.10
1.19
1.33
1.14
1.13
1.09
1.13
1.37
1.11
1.06
1.21
1.13
1.08
1.25
1.40
1.05
1.08
1.22
1.25
1.28
1.10
1.19
1.19
1.49
1.26
1.20
1.21
1.33
1.29
1.29
1.20
1.38
1.27
1.10
amanasifkhalid commentedon Jul 26, 2024
I've looked at all of the benchmarks still regressed by >=10% in the above chart, and it's clear that these regressions are from recent churn in block layout (#102763) and/or block compaction (#103972). For example, take a look at the graphs of the top regressions:
(This one regressed before we turned on the new block layout. I dug into this and found something actionable for .NET 10 here.)
Windows data is split between Windows 10 (purple) and 11 (blue) configs:

System.Collections.Sort<BigStruct>.List(Size: 512)System.Collections.IndexerSetReverse<Int32>.Span(Size: 512)(turquoise is 10, blue is 11)System.Collections.TryGetValueTrue<String, String>.ImmutableDictionary(Size: 512)BBJ_NONEremoval doesn't seem relevant to these remaining regressions, so I'm going to retire this issue in favor of #102763 and #103972.