dotnet / dotnet/perf-autofiling-issues

[Perf] Windows/x86: 30 Regressions on 5/23/2026 11:30:24 AM +00:00

Open
#73,526 1 comment 0 reactions 0 assignees View on GitHub
arch-x86 branch-refs/heads/main compilationmode-tiered kind-micro os-windows perf-regression 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 | [3a1a86525ba8649767249acefa9cad7abeaa4fe4](https://github.com/dotnet/runtime/commit/3a1a86525ba8649767249acefa9cad7abeaa4fe4)
Compare | [2dce83ad91efd1efbf974eb636a18f9b0fcdcb17](https://github.com/dotnet/runtime/commit/2dce83ad91efd1efbf974eb636a18f9b0fcdcb17)
Diff | [Diff](https://github.com/dotnet/runtime/compare/3a1a86525ba8649767249acefa9cad7abeaa4fe4...2dce83ad91efd1efbf974eb636a18f9b0fcdcb17)
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
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [ReadAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 36.83 ms | 106.69 ms | 2.90 | 0.42 | False | | |
|
  • [WriteAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 54.00 ms | 109.95 ms | 2.04 | 0.39 | False | | |
|
  • [WriteAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.81 ms | 3.53 ms | 1.95 | 0.65 | False | | |
|
  • [Read_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 416.19 ฮผs | 777.31 ฮผs | 1.87 | 0.21 | False | | |
|
  • [ReadAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 583.46 ฮผs | 1010.86 ฮผs | 1.73 | 0.58 | False | | |
|
  • [WriteAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 83.55 ms | 142.47 ms | 1.71 | 0.56 | False | | |
|
  • [ReadAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 210.40 ms | 338.36 ms | 1.61 | 0.56 | False | | |
|
  • [ReadAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 73.19 ms | 117.04 ms | 1.60 | 0.71 | False | | |
|
  • [ReadAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.30 ms | 3.61 ms | 1.57 | 0.61 | False | | |
|
  • [FlushAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.54 ms | 14.93 ms | 1.42 | 0.50 | False | | |
|
  • [WriteAsync_NoBuffering_PreallocationSize - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 79.15 ms | 111.50 ms | 1.41 | 0.52 | False | | |
|
  • [CopyToFileAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 447.40 ฮผs | 621.09 ฮผs | 1.39 | 0.64 | False | | |
|
  • [WriteAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.19 ms | 4.41 ms | 1.38 | 0.56 | False | | |
|
  • [WriteAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.92 ms | 3.99 ms | 1.36 | 0.57 | False | | |
|
  • [ReadAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.37 ms | 1.84 ms | 1.34 | 0.53 | False | | |
|
  • [WriteAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 633.71 ฮผs | 837.78 ฮผs | 1.32 | 0.61 | False | | |
|
  • [WriteAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.69 ms | 2.23 ms | 1.32 | 0.63 | False | | |
|
  • [AppendAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.16 ms | 4.00 ms | 1.26 | 0.60 | False | | |
|
  • [WriteAsync_NoBuffering_PreallocationSize - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 994.81 ฮผs | 1250.42 ฮผs | 1.26 | 0.45 | False | | |
|
  • [WriteAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 291.72 ms | 352.20 ms | 1.21 | 0.70 | False | | |
|
  • [WriteAsync - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 184.35 ms | 212.59 ms | 1.15 | 0.59 | False | | |
|
  • [WriteAsync_NoBuffering - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.11 ms | 1.24 ms | 1.11 | 0.61 | False | | |

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

### System.IO.Tests.Perf_FileStream.ReadAsync_NoBuffering(fileSize: 104857600, userBufferSize: 16384, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync_NoBuffering(fileSize: 104857600, userBufferSize: 16384, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync(fileSize: 1048576, userBufferSize: 512, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.Read_NoBuffering(fileSize: 1048576, userBufferSize: 16384, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.ReadAsync_NoBuffering(fileSize: 1048576, userBufferSize: 16384, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync_NoBuffering(fileSize: 104857600, userBufferSize: 16384, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.ReadAsync(fileSize: 104857600, userBufferSize: 4096, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.ReadAsync_NoBuffering(fileSize: 104857600, userBufferSize: 16384, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.ReadAsync(fileSize: 1048576, userBufferSize: 512, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.FlushAsync(fileSize: 1024, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync_NoBuffering_PreallocationSize(fileSize: 104857600, userBufferSize: 16384, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync(fileSize: 1048576, userBufferSize: 512, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync(fileSize: 1048576, userBufferSize: 4096, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.ReadAsync(fileSize: 1048576, userBufferSize: 512, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync_NoBuffering(fileSize: 1048576, userBufferSize: 16384, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync(fileSize: 1048576, userBufferSize: 4096, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.AppendAsync(fileSize: 1048576, userBufferSize: 4096, options: DeleteOnClose, Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync_NoBuffering_PreallocationSize(fileSize: 1048576, userBufferSize: 16384, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync(fileSize: 104857600, userBufferSize: 4096, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync(fileSize: 104857600, userBufferSize: 4096, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.WriteAsync_NoBuffering(fileSize: 1048576, userBufferSize: 16384, 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 | [eb5503a1f0dc40ee7b73eb79a039eb143ee25038](https://github.com/dotnet/runtime/commit/eb5503a1f0dc40ee7b73eb79a039eb143ee25038)
Compare | [2dce83ad91efd1efbf974eb636a18f9b0fcdcb17](https://github.com/dotnet/runtime/commit/2dce83ad91efd1efbf974eb636a18f9b0fcdcb17)
Diff | [Diff](https://github.com/dotnet/runtime/compare/eb5503a1f0dc40ee7b73eb79a039eb143ee25038...2dce83ad91efd1efbf974eb636a18f9b0fcdcb17)
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
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [IndexerCheckPathLength - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 98.01 ns | 117.19 ns | 1.20 | 0.02 | False | | |
|
  • [Replace_Char - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 83.25 ns | 93.58 ns | 1.12 | 0.03 | False | | |
|
  • [Concat_str_str - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.87 ns | 25.59 ns | 1.12 | 0.07 | False | | |
|
  • [Replace_String - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 53.11 ns | 57.67 ns | 1.09 | 0.14 | False | | |
|
  • [GetChars - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.09 ns | 14.16 ns | 1.08 | 0.05 | False | | |
|
  • [Concat_str_str - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 152.36 ns | 162.71 ns | 1.07 | 0.01 | False | | |
|
  • [Concat_str_str_str_str - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 311.42 ns | 332.00 ns | 1.07 | 0.00 | False | | |
|
  • [Concat_str_str_str - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 235.38 ns | 249.84 ns | 1.06 | 0.00 | False | | |

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

### System.Tests.Perf_String.IndexerCheckPathLength

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Concat_str_str(size: 100)

#### 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: "")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.GetChars(size: 100)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Concat_str_str(size: 1000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Concat_str_str_str_str(size: 1000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Concat_str_str_str(size: 1000)

#### 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

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.