dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 29 Improvements on 5/5/2026 12:34:03 PM +00:00

Open
#73,025 1 comment 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro os-linux perf-improvement runkind-micro runtimetype-coreclr untriaged
Dominant language
No language data
Stars
10
Forks
8
PR merge metrics
PR metrics pending

Description

### Run Information

Name | Value
-- | --
Architecture | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [5761661dc931d1f14531b8c91bf88344d2a1dc09](https://github.com/dotnet/runtime/commit/5761661dc931d1f14531b8c91bf88344d2a1dc09)
Compare | [cb67209148787d94ee4b4c550a09a037dedd40f3](https://github.com/dotnet/runtime/commit/cb67209148787d94ee4b4c550a09a037dedd40f3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5761661dc931d1f14531b8c91bf88344d2a1dc09...cb67209148787d94ee4b4c550a09a037dedd40f3)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.IO.Tests.Perf_FileStream

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

  • [Read - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 880.25 μs | 672.10 μs | 0.76 | 0.13 | False | | |
|
  • [Read_NoBuffering - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 20.12 ms | 15.98 ms | 0.79 | 0.10 | False | | |
|
  • [SeekBackward - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.86 ms | 3.14 ms | 0.81 | 0.08 | False | | |
|
  • [LockUnlock - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 44.16 μs | 36.36 μs | 0.82 | 0.23 | False | | |
|
  • [Flush - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.83 ms | 2.33 ms | 0.82 | 0.18 | False | | |
|
  • [Flush - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.84 ms | 2.34 ms | 0.83 | 0.22 | False | | |
|
  • [SeekBackward - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.80 ms | 3.14 ms | 0.83 | 0.08 | False | | |
|
  • [GetLength - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.59 μs | 2.97 μs | 0.83 | 0.10 | False | | |
|
  • [Read_NoBuffering - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 194.96 μs | 166.02 μs | 0.85 | 0.10 | False | | |
|
  • [Read_NoBuffering - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 195.37 μs | 166.41 μs | 0.85 | 0.12 | False | | |
|
  • [Read - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 749.03 μs | 645.19 μs | 0.86 | 0.18 | False | | |
|
  • [GetLength - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.33 μs | 2.94 μs | 0.88 | 0.06 | False | | |
|
  • [Read - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 75.87 ms | 67.70 ms | 0.89 | 0.14 | False | | |
|
  • [Read - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 76.92 ms | 72.79 ms | 0.95 | 0.16 | False | | |

![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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.IO.Tests.Perf_FileStream*'
```

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.SeekBackward(fileSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.LockUnlock(fileSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.Flush(fileSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.GetLength(options: Write)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.Read_NoBuffering(fileSize: 1048576, userBufferSize: 16384, 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.Read(fileSize: 1048576, userBufferSize: 4096, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.GetLength(options: Read)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.Read(fileSize: 104857600, userBufferSize: 4096, 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [5761661dc931d1f14531b8c91bf88344d2a1dc09](https://github.com/dotnet/runtime/commit/5761661dc931d1f14531b8c91bf88344d2a1dc09)
Compare | [cb67209148787d94ee4b4c550a09a037dedd40f3](https://github.com/dotnet/runtime/commit/cb67209148787d94ee4b4c550a09a037dedd40f3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5761661dc931d1f14531b8c91bf88344d2a1dc09...cb67209148787d94ee4b4c550a09a037dedd40f3)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

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

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

  • [Span - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.06 μs | 1.44 μs | 0.70 | 0.15 | False | | |
|
  • [ImmutableArray - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1032.02 ns | 808.13 ns | 0.78 | 0.40 | False | | |
|
  • [ReadOnlyMemory - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.30 μs | 1.87 μs | 0.81 | 0.20 | False | | |
|
  • [Array - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 767.81 ns | 673.00 ns | 0.88 | 0.18 | False | | |
|
  • [List - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 972.02 ns | 854.50 ns | 0.88 | 0.36 | False | | |
|
  • [ReadOnlySpan - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.20 μs | 1.12 μs | 0.93 | 0.18 | False | | |

![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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CopyTo*'
```

### System.Collections.CopyTo<String>.Span(Size: 2048)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CopyTo<String>.ImmutableArray(Size: 2048)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CopyTo<String>.ReadOnlyMemory(Size: 2048)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CopyTo<String>.Array(Size: 2048)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CopyTo<String>.List(Size: 2048)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CopyTo<String>.ReadOnlySpan(Size: 2048)

#### 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [5761661dc931d1f14531b8c91bf88344d2a1dc09](https://github.com/dotnet/runtime/commit/5761661dc931d1f14531b8c91bf88344d2a1dc09)
Compare | [cb67209148787d94ee4b4c550a09a037dedd40f3](https://github.com/dotnet/runtime/commit/cb67209148787d94ee4b4c550a09a037dedd40f3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5761661dc931d1f14531b8c91bf88344d2a1dc09...cb67209148787d94ee4b4c550a09a037dedd40f3)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.Tests.Perf_Version

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

  • [TryFormat2 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 5.76 μs | 4.74 μs | 0.82 | 0.22 | False | | |
|
  • [ToString3 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.42 μs | 8.71 μs | 0.93 | 0.22 | False | | |
|
  • [TryFormat3 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.63 μs | 7.16 μs | 0.94 | 0.24 | False | | |
|
  • [TryFormat4 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.24 μs | 9.65 μs | 0.94 | 0.27 | 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Tests.Perf_Version*'
```

### System.Tests.Perf_Version.TryFormat2

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Version.ToString3

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Version.TryFormat3

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Version.TryFormat4

#### 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [5761661dc931d1f14531b8c91bf88344d2a1dc09](https://github.com/dotnet/runtime/commit/5761661dc931d1f14531b8c91bf88344d2a1dc09)
Compare | [cb67209148787d94ee4b4c550a09a037dedd40f3](https://github.com/dotnet/runtime/commit/cb67209148787d94ee4b4c550a09a037dedd40f3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5761661dc931d1f14531b8c91bf88344d2a1dc09...cb67209148787d94ee4b4c550a09a037dedd40f3)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.Collections.TryAddGiventSize<Int32>

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

  • [OrderedDictionary - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 802.94 μs | 606.03 μs | 0.75 | 0.36 | False | | |
|
  • [ConcurrentDictionary - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 626.87 μs | 563.36 μs | 0.90 | 0.26 | 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.TryAddGiventSize*'
```

### System.Collections.TryAddGiventSize<Int32>.OrderedDictionary(Count: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.TryAddGiventSize<Int32>.ConcurrentDictionary(Count: 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [5761661dc931d1f14531b8c91bf88344d2a1dc09](https://github.com/dotnet/runtime/commit/5761661dc931d1f14531b8c91bf88344d2a1dc09)
Compare | [cb67209148787d94ee4b4c550a09a037dedd40f3](https://github.com/dotnet/runtime/commit/cb67209148787d94ee4b4c550a09a037dedd40f3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5761661dc931d1f14531b8c91bf88344d2a1dc09...cb67209148787d94ee4b4c550a09a037dedd40f3)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.Collections.CtorFromCollection<Int32>

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

  • [OrderedDictionary - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 1034.27 μs | 734.49 μs | 0.71 | 0.33 | False | | |
|
  • [ConcurrentBag - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1001.31 μs | 937.25 μs | 0.94 | 0.19 | 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.CtorFromCollection*'
```

### System.Collections.CtorFromCollection<Int32>.OrderedDictionary(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CtorFromCollection<Int32>.ConcurrentBag(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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [5761661dc931d1f14531b8c91bf88344d2a1dc09](https://github.com/dotnet/runtime/commit/5761661dc931d1f14531b8c91bf88344d2a1dc09)
Compare | [cb67209148787d94ee4b4c550a09a037dedd40f3](https://github.com/dotnet/runtime/commit/cb67209148787d94ee4b4c550a09a037dedd40f3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5761661dc931d1f14531b8c91bf88344d2a1dc09...cb67209148787d94ee4b4c550a09a037dedd40f3)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in Microsoft.Extensions.Caching.Memory.Tests.MemoryCacheTests

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

  • [AddThenRemove_ExpirationTokens - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1232.39 μs | 938.02 μs | 0.76 | 0.25 | 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'Microsoft.Extensions.Caching.Memory.Tests.MemoryCacheTests*'
```

### Microsoft.Extensions.Caching.Memory.Tests.MemoryCacheTests.AddThenRemove_ExpirationTokens

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