dotnet / dotnet/perf-autofiling-issues

[Perf] Windows/x86: 9 Improvements on 9/11/2026 9:48:28 PM +00:00

Open
#79,393 1 comment 0 reactions 0 assignees View on GitHub
arch-x86 branch-refs/heads/main compilationmode-tiered kind-micro Look Again os-windows perf-improvement PGO runkind-micro runtime-coreclr untriaged
Dominant language
No language data
Stars
10
Forks
8
PR merge metrics
PR metrics pending

Description

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [0fd08c887c1317055025965cbe829b732fbe942d](https://github.com/dotnet/runtime/commit/0fd08c887c1317055025965cbe829b732fbe942d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...0fd08c887c1317055025965cbe829b732fbe942d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Memory.ReadOnlySpan

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [IndexOfString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.55 ns | 11.85 ns | 0.87 | 0.15 | False | | |
|
  • [IndexOfString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.11 ns | 11.47 ns | 0.88 | 0.08 | False | | |

![graph]()
![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.ReadOnlySpan*'
```

### System.Memory.ReadOnlySpan.IndexOfString(input: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", value: "X", comparisonType: Ordinal)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.ReadOnlySpan.IndexOfString(input: "だだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだxだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだだ", value: "x", comparisonType: Ordinal)

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [ea973e7517a629d0c3c75f4879ce279b07f21365](https://github.com/dotnet/runtime/commit/ea973e7517a629d0c3c75f4879ce279b07f21365)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...ea973e7517a629d0c3c75f4879ce279b07f21365)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Collections.Perf_LengthBucketsFrozenDictionary

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [TryGetValue_False_FrozenDictionary - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.90 μs | 3.31 μs | 0.85 | 0.05 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.Perf_LengthBucketsFrozenDictionary*'
```

### System.Collections.Perf_LengthBucketsFrozenDictionary.TryGetValue_False_FrozenDictionary(Count: 1000, ItemsPerBucket: 5)

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [ea973e7517a629d0c3c75f4879ce279b07f21365](https://github.com/dotnet/runtime/commit/ea973e7517a629d0c3c75f4879ce279b07f21365)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...ea973e7517a629d0c3c75f4879ce279b07f21365)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in LinqBenchmarks

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [Where01LinqMethodNestedX - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 201.30 ms | 182.58 ms | 0.91 | 0.03 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'LinqBenchmarks*'
```

### LinqBenchmarks.Where01LinqMethodNestedX

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [0fd08c887c1317055025965cbe829b732fbe942d](https://github.com/dotnet/runtime/commit/0fd08c887c1317055025965cbe829b732fbe942d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...0fd08c887c1317055025965cbe829b732fbe942d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Collections.CreateAddAndClear<String>

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [IDictionary - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 16.04 μs | 12.37 μs | 0.77 | 0.03 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CreateAddAndClear*'
```

### System.Collections.CreateAddAndClear<String>.IDictionary(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [0fd08c887c1317055025965cbe829b732fbe942d](https://github.com/dotnet/runtime/commit/0fd08c887c1317055025965cbe829b732fbe942d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...0fd08c887c1317055025965cbe829b732fbe942d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Collections.AddGivenSize<String>

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [IDictionary - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.07 μs | 7.24 μs | 0.65 | 0.03 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.AddGivenSize*'
```

### System.Collections.AddGivenSize<String>.IDictionary(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [0fd08c887c1317055025965cbe829b732fbe942d](https://github.com/dotnet/runtime/commit/0fd08c887c1317055025965cbe829b732fbe942d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...0fd08c887c1317055025965cbe829b732fbe942d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Threading.Tests.Perf_Interlocked

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [Exchange_long - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 995.32 ns | 5.05 ns | 0.01 | 0.10 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Threading.Tests.Perf_Interlocked*'
```

### System.Threading.Tests.Perf_Interlocked.Exchange_long

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [0fd08c887c1317055025965cbe829b732fbe942d](https://github.com/dotnet/runtime/commit/0fd08c887c1317055025965cbe829b732fbe942d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...0fd08c887c1317055025965cbe829b732fbe942d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Collections.RemoveTrue<String>

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [Dictionary - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 14.73 μs | 13.85 μs | 0.94 | 0.03 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.RemoveTrue*'
```

### System.Collections.RemoveTrue<String>.Dictionary(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

---

### Run Information

Name | Value
-- | --
Architecture | x86
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9](https://github.com/dotnet/runtime/commit/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9)
Compare | [0fd08c887c1317055025965cbe829b732fbe942d](https://github.com/dotnet/runtime/commit/0fd08c887c1317055025965cbe829b732fbe942d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/de29e26a4f69da5d446900a6ba9d68ba3ddc5ba9...0fd08c887c1317055025965cbe829b732fbe942d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in PerfLabTests.LowLevelPerf

Benchmark | Baseline | Test | Test/Base | Test Quality | Edge Detector | Baseline IR | Compare IR | IR Ratio
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [GenericClassWithSTringGenericInstanceMethod - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 152.82 μs | 135.43 μs | 0.89 | 0.37 | False | | |

![graph]()
[Test Report]()

### Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

```cmd
git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'PerfLabTests.LowLevelPerf*'
```

### PerfLabTests.LowLevelPerf.GenericClassWithSTringGenericInstanceMethod

#### ETL Files

#### Histogram

#### JIT Disasms

### Docs

[Profiling workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/profiling-workflow-dotnet-runtime.md)
[Benchmarking workflow for dotnet/runtime repository](https://github.com/dotnet/performance/blob/master/docs/benchmarking-workflow-dotnet-runtime.md)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked benchmark sources, including src/benchmarks/micro/libraries/System.Memory/ReadOnlySpan.cs, and reproduce the reported cases with the benchmarks_ci.py commands in the issue. Review the generated test reports and runtime diffs for each listed improvement; done means the results are triaged and any actionable runtime work is clearly identified.

Written by the indexing model from the issue text.

Assessment

Domain
operating-systems, performance, testing-qa
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.