dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/arm64: 19 Improvements on 6/2/2026 9:01:20 PM +00:00

Open
#74,413 1 comment 0 reactions 0 assignees View on GitHub
ampere arch-arm64 branch-refs/heads/main compilationmode-tiered kind-micro os-linux perf-improvement 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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Linq.Tests.Perf_Enumerable

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

  • [Aggregate - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 199.94 ns | 72.37 ns | 0.36 | 0.00 | False | | |
|
  • [SingleWithPredicate_FirstElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 200.10 ns | 72.65 ns | 0.36 | 0.01 | False | | |
|
  • [Max - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 226.14 ns | 102.07 ns | 0.45 | 0.01 | False | | |
|
  • [Average - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 225.70 ns | 102.29 ns | 0.45 | 0.01 | False | | |
|
  • [Min - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 223.18 ns | 102.02 ns | 0.46 | 0.01 | False | | |
|
  • [LastWithPredicate_FirstElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 197.44 ns | 105.02 ns | 0.53 | 0.01 | False | | |
|
  • [LastWithPredicate_FirstElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 452.81 ns | 378.89 ns | 0.84 | 0.24 | False | | |

![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.Linq.Tests.Perf_Enumerable*'
```

### System.Linq.Tests.Perf_Enumerable.Aggregate(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.SingleWithPredicate_FirstElementMatches(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.Max(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.Average(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.LastWithPredicate_FirstElementMatches(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](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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements 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]()
| 213.46 ms | 153.68 ms | 0.72 | 0.25 | False | | |
|
  • [CopyToFileAsync - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 204.57 ms | 153.48 ms | 0.75 | 0.26 | False | | |
|
  • [Write_NoBuffering_PreallocationSize - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 630.00 μs | 503.62 μs | 0.80 | 0.42 | False | | |
|
  • [CopyToFileAsync - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.44 ms | 2.22 ms | 0.91 | 0.38 | 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.IO.Tests.Perf_FileStream*'
```

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### 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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Collections.Perf_Frozen<Int16>

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

  • [ToFrozenSet - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.24 μs | 3.05 μs | 0.94 | 0.01 | False | | |
|
  • [ToFrozenSet - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 28.26 μs | 26.82 μs | 0.95 | 0.01 | 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.Perf_Frozen*'
```

### System.Collections.Perf_Frozen<Int16>.ToFrozenSet(Count: 64)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Perf_Frozen<Int16>.ToFrozenSet(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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.IO.Tests.MemoryStreamTests

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

  • [WriteByte - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 153.56 μs | 132.31 μs | 0.86 | 0.00 | False | | |
|
  • [WriteByte - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.41 μs | 2.09 μs | 0.87 | 0.00 | 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.IO.Tests.MemoryStreamTests*'
```

### System.IO.Tests.MemoryStreamTests.WriteByte(Size: 65536)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.MemoryStreamTests.WriteByte(Size: 1024)

#### 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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Tests.Perf_Enum

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

  • [StringFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 283.10 ns | 250.80 ns | 0.89 | 0.23 | 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 'System.Tests.Perf_Enum*'
```

### System.Tests.Perf_Enum.StringFormat(value: 32)

#### 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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements 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]()
| 29.27 ms | 12.48 ms | 0.43 | 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
python3 .\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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements 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]()
| 27.68 ms | 11.90 ms | 0.43 | 0.41 | 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 '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 | arm64
OS | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [98d2d533e9572678123721a78a59173daf63acf9](https://github.com/dotnet/runtime/commit/98d2d533e9572678123721a78a59173daf63acf9)
Compare | [2790c60428c37ef3c0a33941e10f867aa79c51b7](https://github.com/dotnet/runtime/commit/2790c60428c37ef3c0a33941e10f867aa79c51b7)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98d2d533e9572678123721a78a59173daf63acf9...2790c60428c37ef3c0a33941e10f867aa79c51b7)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Threading.Channels.Tests.SpscUnboundedChannelPerfTests

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]()
| 27.50 ms | 11.69 ms | 0.43 | 0.36 | 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 'System.Threading.Channels.Tests.SpscUnboundedChannelPerfTests*'
```

### System.Threading.Channels.Tests.SpscUnboundedChannelPerfTests.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)

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.