Repository navigation
[Perf] Regressions from cross-block local assertion prop #95645
Description
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Text.Perf_Ascii
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 4.08 ns | 5.11 ns | 1.25 | 0.04 | False | ||||
| 17.57 ns | 23.73 ns | 1.35 | 0.15 | False | ||||
| 17.53 ns | 24.33 ns | 1.39 | 0.19 | True | ||||
| 22.04 ns | 23.75 ns | 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.Text.Perf_Ascii*'Details
Payloads
System.Text.Perf_Ascii.EqualsIgnoreCase_ExactlyTheSame_Bytes_Chars(Size: 6)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Ascii.ToUpper_Chars(Size: 128)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Ascii.ToLower_Chars(Size: 128)
ETL Files
Histogram
JIT Disasms
System.Text.Perf_Ascii.EqualsIgnoreCase_DifferentCase_Bytes_Chars(Size: 128)
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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.TryGetValueTrue<Int32, Int32>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 1.04 μs | 1.91 μs | 1.83 | 0.06 | True | ||||
| 2.24 μs | 3.52 μs | 1.57 | 0.30 | False | ||||
| 21.25 μs | 22.79 μs | 1.07 | 0.04 | 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.TryGetValueTrue<Int32, Int32>*'Details
Payloads
System.Collections.TryGetValueTrue<Int32, Int32>.ConcurrentDictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.TryGetValueTrue<Int32, Int32>.IDictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.TryGetValueTrue<Int32, Int32>.SortedDictionary(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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Text.Json.Tests.Perf_Reader
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 32.63 μs | 34.33 μs | 1.05 | 0.07 | 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.Text.Json.Tests.Perf_Reader*'Details
Payloads
System.Text.Json.Tests.Perf_Reader.ReadMultiSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: Json40KB)
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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Text.RegularExpressions.Tests.Perf_Regex_Common
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 65.16 ns | 70.03 ns | 1.07 | 0.02 | False | ||||
| 68.94 ns | 76.96 ns | 1.12 | 0.03 | False | ||||
| 1.01 μs | 1.08 μs | 1.08 | 0.08 | False | ||||
| 69.53 ns | 76.92 ns | 1.11 | 0.06 | 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.Text.RegularExpressions.Tests.Perf_Regex_Common*'Details
Payloads
System.Text.RegularExpressions.Tests.Perf_Regex_Common.Uri_IsMatch(Options: IgnoreCase, Compiled)
ETL Files
Histogram
JIT Disasms
System.Text.RegularExpressions.Tests.Perf_Regex_Common.Uri_IsNotMatch(Options: IgnoreCase, Compiled)
ETL Files
Histogram
JIT Disasms
System.Text.RegularExpressions.Tests.Perf_Regex_Common.MatchesWord(Options: None)
ETL Files
Histogram
JIT Disasms
System.Text.RegularExpressions.Tests.Perf_Regex_Common.Uri_IsNotMatch(Options: Compiled)
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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.CreateAddAndClear<String>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 1.20 μs | 1.51 μs | 1.25 | 0.38 | 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.CreateAddAndClear<String>*'Details
Payloads
System.Collections.CreateAddAndClear<String>.Span(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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.IndexerSetReverse<Int32>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 173.16 ns | 228.86 ns | 1.32 | 0.00 | True | ||||
| 173.37 ns | 229.20 ns | 1.32 | 0.00 | True | ||||
| 507.30 ns | 566.83 ns | 1.12 | 0.13 | 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.IndexerSetReverse<Int32>*'Details
Payloads
System.Collections.IndexerSetReverse<Int32>.Span(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.IndexerSetReverse<Int32>.Array(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.IndexerSetReverse<Int32>.IList(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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.Perf_Frozen<NotKnownComparable>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 1.45 μs | 1.95 μs | 1.35 | 0.07 | False | ||||
| 210.64 ns | 243.33 ns | 1.16 | 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.Collections.Perf_Frozen<NotKnownComparable>*'Details
Payloads
System.Collections.Perf_Frozen<NotKnownComparable>.Contains_True(Count: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Perf_Frozen<NotKnownComparable>.Contains_True(Count: 64)
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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.Sort<Int32>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 16.49 μs | 20.15 μs | 1.22 | 0.13 | False | ||||
| 16.43 μs | 20.21 μs | 1.23 | 0.11 | 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.Sort<Int32>*'Details
Payloads
System.Collections.Sort<Int32>.LinqOrderByExtension(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Sort<Int32>.LinqQuery(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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Buffers.Tests.ReadOnlySequenceTests<Char>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 4.48 ns | 5.76 ns | 1.28 | 0.47 | 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.Buffers.Tests.ReadOnlySequenceTests<Char>*'Details
Payloads
System.Buffers.Tests.ReadOnlySequenceTests<Char>.IterateForEachArray
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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.IndexerSetReverse<String>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 173.61 ns | 228.81 ns | 1.32 | 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.IndexerSetReverse<String>*'Details
Payloads
System.Collections.IndexerSetReverse<String>.Array(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 | 52e65a5fab8fc2a60a5eb4d23e00a4a4544232f7 |
| Compare | 18c746aa09c5f50f615636500809fc32c1216efd |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.IterateForEach<String>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 147.73 ns | 192.26 ns | 1.30 | 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.IterateForEach<String>*'Details
Payloads
System.Collections.IterateForEach<String>.ImmutableArray(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.Perf_Convert
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Perf_Convert.ToBase64String(formattingOptions: InsertLineBreaks)
ETL Files
Histogram
JIT Disasms
System.Perf_Convert.ToBase64CharArray(binaryDataSize: 1024, formattingOptions: InsertLineBreaks)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Globalization.Tests.StringSearch
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.Globalization.Tests.StringSearch.IsPrefix_FirstHalf(Options: (en-US, IgnoreNonSpace, False))
ETL Files
Histogram
JIT Disasms
System.Globalization.Tests.StringSearch.IsPrefix_FirstHalf(Options: (, None, False))
ETL Files
Histogram
JIT Disasms
System.Globalization.Tests.StringSearch.IsPrefix_FirstHalf(Options: (en-US, None, False))
ETL Files
Histogram
JIT Disasms
System.Globalization.Tests.StringSearch.IsPrefix_DifferentFirstChar(Options: (en-US, IgnoreNonSpace, False))
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.ContainsTrueComparer<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.ContainsTrueComparer<Int32>.FrozenSet(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.ContainsTrueComparer<Int32>.ImmutableHashSet(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.Text.RegularExpressions.Tests.Perf_Regex_Industry_Mariomkas
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.RegularExpressions.Tests.Perf_Regex_Industry_Mariomkas.Count(Pattern: "[\w]+://[^/\\s?#]+[^\\s?#]+(?:\?[^\\s#])?(?:#[^\\s])?", Options: Compiled)
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_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.Tests.Perf_Int32.TryFormat(value: 2147483647)
ETL Files
Histogram
JIT Disasms
System.Tests.Perf_Int32.Parse(value: "12345")
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Text.Json.Document.Tests.Perf_EnumerateObject
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.Json.Document.Tests.Perf_EnumerateObject.Parse(TestCase: StringProperties)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.IterateForEach<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.IterateForEach<Int32>.ImmutableArray(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.IterateForEach<Int32>.IEnumerable(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.Text.Json.Tests.Perf_Basic
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.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: False, SkipValidation: False, DataSize: 100000)
ETL Files
Histogram
JIT Disasms
System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: False, SkipValidation: True, DataSize: 100000)
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
Details
Payloads
Baseline
Compare
System.Collections.Sort<IntStruct>.LinqQuery(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.Text.Json.Tests.Perf_Get
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.Json.Tests.Perf_Get.GetBoolean
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in Benchstone.BenchF.InvMt
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
Benchstone.BenchF.InvMt.Test
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Leipzig
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.RegularExpressions.Tests.Perf_Regex_Industry_Leipzig.Count(Pattern: ".{2,4}(Tom|Sawyer|Huckleberry|Finn)", Options: Compiled)
ETL Files
Histogram
JIT Disasms
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_Leipzig.Count(Pattern: ".{0,2}(Tom|Sawyer|Huckleberry|Finn)", Options: None)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
performanceautofiler commentedon Dec 5, 2023
Run Information
Regressions in System.Collections.ContainsKeyTrue<String, 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.ContainsKeyTrue<String, String>.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 Microsoft.Extensions.Logging.LoggingOverhead
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
Microsoft.Extensions.Logging.LoggingOverhead.TwoArguments_FilteredByLevel
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
Details
Payloads
Baseline
Compare
System.Collections.Sort<BigStruct>.List(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.ComponentModel.Tests.Perf_TypeDescriptorTests
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.Enum))
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in Microsoft.Extensions.DependencyInjection.GetService
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
Microsoft.Extensions.DependencyInjection.GetService.ServiceScope
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
[-][Perf] Linux/x64: 49 Regressions on 11/29/2023 12:40:47 AM[/-][+][Perf] Regressions from cross-block local assertion prop[/+]2 remaining items
EgorBo commentedon Dec 5, 2023
Also:
x64:
arm64:
AndyAyersMS commentedon Dec 12, 2023
Collated regression report as of 12-12-23. 149 benchmarks regressed.
Windows
Ubuntu
Ubuntu
Windows
Windows
1.84
1.83
1.57
1.79
1.16
1.70
2.09
1.22
1.22
1.47
1.46
1.43
1.37
1.26
1.25
1.37
1.36
1.35
1.33
1.31
1.32
1.32
1.32
1.32
1.30
1.25
1.30
1.32
1.30
1.19
1.32
1.31
1.28
1.35
1.25
1.27
1.25
1.41
1.40
1.21
1.08
1.26
1.26
1.39
1.37
1.35
1.24
1.07
1.24
1.22
1.30
1.23
1.23
1.25
1.21
1.19
1.18
1.20
1.18
1.20
1.21
1.21
1.16
1.20
1.20
1.21
1.19
1.18
1.18
1.17
1.17
1.16
1.16
1.22
1.16
1.14
1.15
1.15
1.13
1.15
1.15
1.10
1.24
1.13
1.14
1.14
1.13
1.13
1.13
1.12
1.12
1.11
1.12
1.35
1.08
1.17
1.12
1.15
1.11
1.11
1.14
1.15
1.12
1.08
1.14
1.15
1.09
1.10
1.09
1.11
1.14
1.08
1.09
1.10
1.09
1.11
1.12
1.09
1.05
1.10
1.09
1.09
1.09
1.09
1.08
1.09
1.08
1.08
1.07
1.08
1.08
1.09
1.08
1.08
1.09
1.08
1.09
1.08
1.07
1.07
1.07
1.07
1.07
1.07
1.07
1.07
1.05
1.07
1.08
1.08
1.07
1.11
1.07
1.06
1.11
1.06
1.06
1.23
1.07
1.06
1.06
1.06
1.07
1.05
1.05
1.06
1.11
1.06
1.06
1.06
1.07
1.06
1.07
1.11
1.07
1.05
1.06
1.16
1.16
1.11
1.08
1.42
1.16
1.08
1.43
1.14
AndyAyersMS commentedon Jul 2, 2024
Many of these are now improved
But some regressions remain

Let's see if the collation tool still works, so we can get an updated take on the bulk of these.
AndyAyersMS commentedon Jul 2, 2024
Latest collated data
Note this may include unrelated regressions/improvements
1.43
1.70
2.09
1.22
1.22
1.43
1.31
1.37
1.35
1.33
1.25
1.32
1.32
1.25
1.32
1.32
1.27
1.19
1.32
1.31
1.19
1.26
1.47
1.35
1.41
1.40
1.21
1.08
1.08
1.25
1.23
1.15
1.21
1.14
1.37
1.35
1.24
1.07
1.25
1.12
1.15
1.21
1.20
1.09
1.09
1.17
1.18
1.83
1.16
1.16
1.15
1.09
1.30
1.15
1.15
1.14
1.07
1.07
1.07
1.11
1.26
1.14
1.15
1.13
1.13
1.13
1.25
1.28
1.14
1.12
1.35
1.39
1.26
1.22
1.09
1.10
1.09
1.11
1.11
1.08
1.07
1.11
1.09
1.08
1.09
1.09
1.09
1.24
1.22
1.30
1.17
1.06
1.08
1.09
1.11
1.14
1.08
1.10
1.08
1.09
1.21
1.08
1.11
1.08
1.17
1.08
1.18
1.19
1.10
1.06
1.06
1.07
1.05
1.05
1.07
1.07
1.05
1.07
1.07
1.42
1.12
1.06
1.05
1.08
1.18
1.06
1.06
1.20
1.10
1.79
1.16
1.13
1.07
1.07
1.05
1.07
1.20
1.07
1.30
1.07
1.30
1.21
1.16
1.06
1.57
1.11
1.84
1.18
1.20
1.08
1.16
1.16
1.08
1.23
1.07
1.06
1.16
1.08
1.12
1.11
1.12
1.08
1.13
1.14
1.06
1.06
1.11
1.11
1.37
1.12
1.16
1.36
1.07
1.24
1.08
1.07
1.23
1.06
1.14
1.09
1.32
1.08
1.15
1.06
1.46
1.09
AndyAyersMS commentedon Jul 2, 2024
System.Collections.IterateForEach<Int32>.ImmutableArray(Size: 512)
Diff is small codegen diff in the inner loop.
Also note this loop is down-countable and amenable to store sinking and such, really we shouldn't be looping at all (or the benchmark needs to merge all reads).
AndyAyersMS commentedon Jul 2, 2024
Not quite sure how to unwedge this case. We start with something like

Cross-block AP modifies the use of V7 in the loop:


Then we duplicate the loop test block:
Now both V04 and V07 are loop-carried, and have overlapping lifetimes.
Seems like we could realize that the PHIs for V04 and V07 have identical VNs in both phi operands (we don't seem to add the VN for the backedge ones today) and decide that one of the two's uses could be replaced with the other. This would remove a loop-carried value and hopefully merge them into a single variable like we had before.
I don't see how morph can anticipate this case; the problematic flow only gets created later.
Value num refine phis (dotnet#104752)
AndyAyersMS commentedon Jul 19, 2024
Some post-fix results: