Repository navigation
[Perf] Linux/x64: 41 Regressions on 10/18/2023 3:03:02 PM #93926
Description
Run Information
| Name | Value |
|---|---|
| Architecture | x64 |
| OS | ubuntu 22.04 |
| Queue | TigerUbuntu |
| Baseline | d18295e107a297dfe4e12ef5b34c28a63548ab31 |
| Compare | d3bf287cce90d30c634b57c4cf8b568812dfc91b |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in SeekUnroll
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 713.33 ms | 1.31 secs | 1.84 | 0.00 | True | ||||
| 984.91 ms | 1.53 secs | 1.56 | 0.00 | True | ||||
| 1.48 secs | 2.19 secs | 1.48 | 0.37 | True | ||||
| 1.30 secs | 1.97 secs | 1.52 | 0.36 | True | ||||
| 710.61 ms | 1.31 secs | 1.85 | 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 'SeekUnroll*'Details
Payloads
SeekUnroll.Test(boxedIndex: 3)
ETL Files
Histogram
JIT Disasms
SeekUnroll.Test(boxedIndex: 11)
ETL Files
Histogram
JIT Disasms
SeekUnroll.Test(boxedIndex: 27)
ETL Files
Histogram
JIT Disasms
SeekUnroll.Test(boxedIndex: 19)
ETL Files
Histogram
JIT Disasms
SeekUnroll.Test(boxedIndex: 1)
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 | d18295e107a297dfe4e12ef5b34c28a63548ab31 |
| Compare | d3bf287cce90d30c634b57c4cf8b568812dfc91b |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.Perf_DefaultFrozenDictionary
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 12.93 μs | 14.40 μs | 1.11 | 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.Perf_DefaultFrozenDictionary*'Details
Payloads
System.Collections.Perf_DefaultFrozenDictionary.TryGetValue_True_FrozenDictionary(Count: 1000)
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 | d18295e107a297dfe4e12ef5b34c28a63548ab31 |
| Compare | d3bf287cce90d30c634b57c4cf8b568812dfc91b |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Linq.Tests.Perf_Enumerable
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 306.34 ns | 348.86 ns | 1.14 | 0.06 | False | ||||
| 2.31 μs | 2.70 μs | 1.17 | 0.21 | False | ||||
| 142.25 ns | 172.49 ns | 1.21 | 0.03 | True | ||||
| 153.93 ns | 196.25 ns | 1.27 | 0.09 | True | ||||
| 305.40 ns | 349.49 ns | 1.14 | 0.12 | False | ||||
| 146.32 ns | 204.23 ns | 1.40 | 0.00 | True | ||||
| 149.88 ns | 166.84 ns | 1.11 | 0.03 | True | ||||
| 153.42 ns | 194.01 ns | 1.26 | 0.00 | True | ||||
| 172.78 ns | 214.37 ns | 1.24 | 0.14 | False | ||||
| 120.23 ns | 158.75 ns | 1.32 | 0.27 | False | ||||
| 140.89 ns | 172.08 ns | 1.22 | 0.00 | True | ||||
| 142.46 ns | 150.78 ns | 1.06 | 0.00 | True | ||||
| 414.28 ns | 454.23 ns | 1.10 | 0.12 | False | ||||
| 139.55 ns | 170.21 ns | 1.22 | 0.01 | True | ||||
| 324.20 ns | 368.66 ns | 1.14 | 0.25 | False | ||||
| 155.64 ns | 194.00 ns | 1.25 | 0.00 | True | ||||
| 420.54 ns | 443.08 ns | 1.05 | 0.27 | 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.Linq.Tests.Perf_Enumerable*'Details
Payloads
System.Linq.Tests.Perf_Enumerable.Select(input: IList)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Intersect(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Aggregate_Seed(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.CastToSameType(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Select(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.WhereLast_LastElementMatches(input: Array)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.WhereAny_LastElementMatches(input: Array)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.AnyWithPredicate_LastElementMatches(input: Array)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.AnyWithPredicate_LastElementMatches(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.WhereSingle_LastElementMatches(input: Array)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Max(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Aggregate(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.WhereSelect(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Min(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.Where(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.FirstWithPredicate_LastElementMatches(input: IEnumerable)
ETL Files
Histogram
JIT Disasms
System.Linq.Tests.Perf_Enumerable.LastWithPredicate_FirstElementMatches(input: IOrderedEnumerable)
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 | d18295e107a297dfe4e12ef5b34c28a63548ab31 |
| Compare | d3bf287cce90d30c634b57c4cf8b568812dfc91b |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 71.37 μs | 89.13 μs | 1.25 | 0.24 | False | ||||
| 54.25 μs | 64.08 μs | 1.18 | 0.30 | 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_Industry_RustLang_Sherlock*'Details
Payloads
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock.Count(Pattern: "The", Options: Compiled)
ETL Files
Histogram
JIT Disasms
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock.Count(Pattern: "Sherlock Holmes", Options: None)
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 | d18295e107a297dfe4e12ef5b34c28a63548ab31 |
| Compare | d3bf287cce90d30c634b57c4cf8b568812dfc91b |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Collections.Perf_Frozen<Int16>
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 9.64 ns | 14.27 ns | 1.48 | 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.Collections.Perf_Frozen<Int16>*'Details
Payloads
System.Collections.Perf_Frozen<Int16>.Contains_True(Count: 4)
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 | d18295e107a297dfe4e12ef5b34c28a63548ab31 |
| Compare | d3bf287cce90d30c634b57c4cf8b568812dfc91b |
| Diff | Diff |
| Configs | CompilationMode:tiered, RunKind:micro |
Regressions in System.Globalization.Tests.StringSearch
| Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio |
|---|---|---|---|---|---|---|---|---|
| 648.28 ns | 792.50 ns | 1.22 | 0.08 | 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.Globalization.Tests.StringSearch*'Details
Payloads
System.Globalization.Tests.StringSearch.LastIndexOf_Word_NotFound(Options: (en-US, OrdinalIgnoreCase, False))
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository



























Activity
performanceautofiler commentedon Oct 24, 2023
Run Information
Regressions in System.Collections.Tests.Perf_BitArray
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.Tests.Perf_BitArray.BitArraySetLengthGrow(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Tests.Perf_BitArray.BitArrayCopyToBoolArray(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Tests.Perf_BitArray.BitArraySetLengthShrink(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Tests.Perf_BitArray.BitArrayByteArrayCtor(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.Tests.Perf_BitArray.BitArrayBoolArrayCtor(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_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.Tests.Perf_String.Concat_CharEnumerable
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Collections.CtorFromCollection<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.CtorFromCollection<String>.HashSet(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.AddGivenSize<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.AddGivenSize<String>.Dictionary(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Collections.AddGivenSize<String>.IDictionary(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.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>.SortedDictionary(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.TryAddGiventSize<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.TryAddGiventSize<String>.Dictionary(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.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple
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_BoostDocs_Simple.IsMatch(Id: 3, Options: NonBacktracking)
ETL Files
Histogram
JIT Disasms
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_BoostDocs_Simple.IsMatch(Id: 6, Options: NonBacktracking)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.IO.Tests.Perf_FileInfo
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Details
Payloads
Baseline
Compare
System.IO.Tests.Perf_FileInfo.ctor_str
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
cincuranet commentedon Oct 24, 2023
The diff is always 2a8e2ff...a6e3732. Only suspect is #93371. cc @AndyAyersMS
cincuranet commentedon Oct 24, 2023
More from same diff:
AndyAyersMS commentedon Oct 24, 2023
I mentioned this to @cincuranet privately, but there's a divergence betweeen the lab charted data and the azure reported data.
For instance the lab sees a clear regression here
But the azure data shows something quite different
You can sort of see the lab data tracking the lower bound of the azure data here... not sure what all this means.
cincuranet commentedon Oct 25, 2023
The ADX query is wrong. I'm going to fix it. In the meantime, this is the correct one.
On another note, looks like with latest runs, the regression is gone.
AndyAyersMS commentedon Jul 9, 2024
Most of these seem to be fixed now (or were fixed but regressed again), but the various
BitArraymethods are still regressed1.27
1.39
1.21
1.35
1.26
1.26
1.25
1.32
1.27
1.22
1.11
1.48
1.84
1.85
1.14
1.25
1.32
1.56
1.22
1.24
1.17
1.06
1.10
1.09
1.22
1.06
1.25
1.52
1.11
1.12
1.13
1.18
1.14
1.14
1.48
1.09
1.14
1.25
1.05
1.11
1.40
AndyAyersMS commentedon Jul 15, 2024
Seems like all are fixed or were fixed and subsequently re-regressed.