dotnet / dotnet/perf-autofiling-issues

[Perf] Windows/x86: 17 Regressions on 8/28/2026 11:31:31 PM +00:00

Open
#79,063 1 comment 0 reactions 0 assignees View on GitHub
arch-x86 branch-refs/heads/main compilationmode-tiered kind-micro Look Again os-windows perf-regression 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in System.Buffers.Tests.RentReturnArrayPoolTests<Object>

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

  • [SingleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 66.12 ns | 377.23 ns | 5.71 | 0.39 | False | | |
|
  • [SingleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 76.92 ns | 377.67 ns | 4.91 | 0.46 | False | | |
|
  • [MultipleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 235.37 ns | 693.37 ns | 2.95 | 0.27 | False | | |
|
  • [MultipleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.26 μs | 1.62 μs | 1.28 | 0.09 | False | | |

![graph]()
![graph]()
![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.Buffers.Tests.RentReturnArrayPoolTests*'
```

### System.Buffers.Tests.RentReturnArrayPoolTests<Object>.SingleSerial(RentalSize: 4096, ManipulateArray: False, Async: True, UseSharedPool: True)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Tests.RentReturnArrayPoolTests<Object>.SingleSerial(RentalSize: 4096, ManipulateArray: False, Async: True, UseSharedPool: False)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Tests.RentReturnArrayPoolTests<Object>.MultipleSerial(RentalSize: 4096, ManipulateArray: False, Async: True, UseSharedPool: False)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Tests.RentReturnArrayPoolTests<Object>.MultipleSerial(RentalSize: 4096, ManipulateArray: False, Async: True, UseSharedPool: True)

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in System.Buffers.Tests.RentReturnArrayPoolTests<Byte>

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

  • [SingleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 88.77 ns | 362.16 ns | 4.08 | 0.38 | False | | |
|
  • [MultipleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 245.30 ns | 608.24 ns | 2.48 | 0.26 | False | | |
|
  • [SingleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.32 μs | 1.88 μs | 1.42 | 0.12 | False | | |
|
  • [SingleSerial - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.29 μs | 1.82 μs | 1.41 | 0.11 | False | | |

![graph]()
![graph]()
![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.Buffers.Tests.RentReturnArrayPoolTests*'
```

### System.Buffers.Tests.RentReturnArrayPoolTests<Byte>.SingleSerial(RentalSize: 4096, ManipulateArray: False, Async: True, UseSharedPool: True)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Tests.RentReturnArrayPoolTests<Byte>.MultipleSerial(RentalSize: 4096, ManipulateArray: False, Async: True, UseSharedPool: False)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Tests.RentReturnArrayPoolTests<Byte>.SingleSerial(RentalSize: 4096, ManipulateArray: True, Async: True, UseSharedPool: False)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Tests.RentReturnArrayPoolTests<Byte>.SingleSerial(RentalSize: 4096, ManipulateArray: True, Async: True, UseSharedPool: True)

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
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
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [Replace_Char - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.68 ns | 27.58 ns | 1.27 | 0.12 | False | | |
|
  • [Replace_String - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.54 ns | 28.35 ns | 1.11 | 0.11 | False | | |
|
  • [Replace_Char - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 88.80 ns | 95.82 ns | 1.08 | 0.10 | False | | |

![graph]()
![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.Tests.Perf_String*'
```

### System.Tests.Perf_String.Replace_Char(text: "yfesgj0sg1ijslnjsb3uofdz3tbzf6ysgblu3at20nfab2wei1kxfbvsbpzwhanjczcqa2psra3aacxb67qnwbnfp2tok6v0a58l", oldChar: 'b', newChar: '+')

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Replace_String(text: "This is a very nice sentence. This is another very nice sentence.", oldValue: "a", newValue: "b")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Replace_Char(text: "yfesgj0sg1ijslnjsb3uofdz3tbzf6ysgblu3at20nfab2wei1kxfbvsbpzwhanjczcqa2psra3aacxb67qnwbnfp2tok6v0a58lzfdql1fehvs91yzkt9xam7ahjbhvpd9edll13ab46i74ktwwgkgbi792e5gkuuzevo5qm8qt83edag7zovoe686gmtw730kms2i5xgji4xcp25287q68fvhwszd3mszht2uh7bchlgkj5qnq1x9m4lg7vwn8cq5l756akua6oyx9k71bmxbysnmhvxvlxde4k9maumfgxd8gxhxx4mwpph2ttyox9zilt3ylv1q9s4bopfuoa8qlrzodg2q67sh85wx4slcd6w7ufnendaxai633ove2ktbaxdt2sz6y6mo42473xd274gz833p6hj3mu77c4m4od9e5s8btxleh0efqnu9zj9rwtbk5758lio35b3q426j5fwwq1qyknfedrsmqyfw1m38mkkotdf7n0vr6p3erhy8dkzntr9fwjrslxjgrbegih0n6bpb5bfuy55bu65ce9kejcfifxwpcs05umrsb8kvd64q2iwugbbi7vd35g5ho0rff9rhombgzzaniyq7bbjbqr88jyw4ccgnoyl31of3a5thv0vg08gnrqzxas800hewtw8tnwgw5pav81ntdpdd62689x3iqpc317y82b3e2trbpdzieoxldaz009tz37gqmh4bdp1bv9lnl5s58udb11z0h7i2sdl5nbyhjyfzxwzezmp4qx0i3eyvsd3fg8sryq9jhlvkonnfcvb4snl4mcbimdzg49tzdhqjmfxfcq3p1st6b9x2xyevo17evpqp4yc4f2rm0f26ivr3t2f5m0boc44vituxaovcqy1jrkcs6im2kdu3jvcexx2k76egve63aon5a6nbxss4rcke90npmqp35qluf571ms160y2nhaqef835wah41qru8tauu362v0r8konl8", oldChar: 'b', newChar: '+')

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in System.IO.Tests.Perf_FileStream

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

  • [CopyToFileAsync - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 433.89 μs | 620.22 μs | 1.43 | 0.47 | False | | |
|
  • [CopyToFileAsync - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 515.53 μs | 656.82 μs | 1.27 | 0.46 | 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.IO.Tests.Perf_FileStream*'
```

### System.IO.Tests.Perf_FileStream.CopyToFileAsync(fileSize: 1048576, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.CopyToFileAsync(fileSize: 1048576, options: Asynchronous)

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in System.Threading.Channels.Tests.UnboundedChannelPerfTests

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

  • [PingPong - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 5.65 ms | 14.28 ms | 2.53 | 0.66 | 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.Channels.Tests.UnboundedChannelPerfTests*'
```

### System.Threading.Channels.Tests.UnboundedChannelPerfTests.PingPong

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark

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

  • [Parse_ParallelAsync - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 147.86 ns | 229.40 ns | 1.55 | 0.62 | 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 'Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark*'
```

### Microsoft.AspNetCore.Server.Kestrel.Performance.PipeThroughputBenchmark.Parse_ParallelAsync(Length: 128, Chunks: 1)

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in System.Threading.Channels.Tests.BoundedChannelPerfTests

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

  • [PingPong - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.89 ms | 12.99 ms | 3.33 | 0.67 | 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.Channels.Tests.BoundedChannelPerfTests*'
```

### System.Threading.Channels.Tests.BoundedChannelPerfTests.PingPong

#### 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 | [100da3f94464f99616ee4a401670bec491ebc787](https://github.com/dotnet/runtime/commit/100da3f94464f99616ee4a401670bec491ebc787)
Compare | [aa036afce592ad80e938a35bd376222fb232cba9](https://github.com/dotnet/runtime/commit/aa036afce592ad80e938a35bd376222fb232cba9)
Diff | [Diff](https://github.com/dotnet/runtime/compare/100da3f94464f99616ee4a401670bec491ebc787...aa036afce592ad80e938a35bd376222fb232cba9)
Configs | CompilationMode:tiered, RunKind:micro

### Regressions in System.Threading.Tasks.Tests.Perf_AsyncMethods

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

  • [SingleYieldMethodInvocation - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 159.97 ns | 557.32 ns | 3.48 | 0.48 | 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.Tasks.Tests.Perf_AsyncMethods*'
```

### System.Threading.Tasks.Tests.Perf_AsyncMethods.SingleYieldMethodInvocation

#### 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 benchmark source at src/benchmarks/micro/libraries/System.Buffers/ArrayPoolTests.cs, especially the SingleSerial and MultipleSerial cases, and compare the listed baseline and compare commits. Run the provided benchmarks_ci.py command for System.Buffers.Tests.RentReturnArrayPoolTests and inspect the linked test report and profiling workflow. Done means the cause of the Windows/x86 regressions is identified and the affected measurements are revalidated.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
performance, testing-qa
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.