dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/arm64: 19 Improvements on 5/20/2026 9:51:13 AM +00:00

Open
#73,806 1 comment 0 reactions 0 assignees View on GitHub
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 | azurelinux 3.0
Queue | CobaltAzureLinux
Baseline | [f397c835cc1c655505d2a22fd0cebb9e96733d0b](https://github.com/dotnet/runtime/commit/f397c835cc1c655505d2a22fd0cebb9e96733d0b)
Compare | [a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd](https://github.com/dotnet/runtime/commit/a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Diff | [Diff](https://github.com/dotnet/runtime/compare/f397c835cc1c655505d2a22fd0cebb9e96733d0b...a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Collections.Tests.Perf_BitArray

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

  • [BitArrayLengthCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.38 ns | 16.43 ns | 0.70 | 0.23 | False | | |
|
  • [BitArrayLengthCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 19.53 ns | 14.95 ns | 0.77 | 0.21 | False | | |
|
  • [BitArraySetLengthGrow - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 43.81 ns | 33.74 ns | 0.77 | 0.16 | False | | |
|
  • [BitArrayBitArrayCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.29 ns | 19.49 ns | 0.77 | 0.17 | False | | |
|
  • [BitArrayBoolArrayCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 26.54 ns | 20.63 ns | 0.78 | 0.16 | False | | |
|
  • [BitArrayIntArrayCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.77 ns | 19.58 ns | 0.79 | 0.25 | False | | |
|
  • [BitArrayLengthValueCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 26.60 ns | 21.08 ns | 0.79 | 0.15 | False | | |
|
  • [BitArrayBitArrayCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 29.88 ns | 24.06 ns | 0.81 | 0.15 | False | | |
|
  • [BitArrayByteArrayCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.77 ns | 20.07 ns | 0.81 | 0.15 | False | | |
|
  • [BitArraySetLengthShrink - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 28.44 ns | 23.55 ns | 0.83 | 0.13 | False | | |

![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.Collections.Tests.Perf_BitArray*'
```

### System.Collections.Tests.Perf_BitArray.BitArrayLengthCtor(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayLengthCtor(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArraySetLengthGrow(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayBitArrayCtor(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayBoolArrayCtor(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayIntArrayCtor(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayLengthValueCtor(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayBitArrayCtor(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArrayByteArrayCtor(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.Tests.Perf_BitArray.BitArraySetLengthShrink(Size: 4)

#### 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 | azurelinux 3.0
Queue | CobaltAzureLinux
Baseline | [f397c835cc1c655505d2a22fd0cebb9e96733d0b](https://github.com/dotnet/runtime/commit/f397c835cc1c655505d2a22fd0cebb9e96733d0b)
Compare | [a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd](https://github.com/dotnet/runtime/commit/a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Diff | [Diff](https://github.com/dotnet/runtime/compare/f397c835cc1c655505d2a22fd0cebb9e96733d0b...a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Text.RegularExpressions.Tests.Perf_Regex_Cache

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

  • [IsMatch_Multithreading - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 43.84 ms | 39.04 ms | 0.89 | 0.53 | False | | |
|
  • [IsMatch - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 54.81 ms | 49.10 ms | 0.90 | 0.17 | False | | |
|
  • [IsMatch - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 49.57 ms | 45.30 ms | 0.91 | 0.11 | False | | |
|
  • [IsMatch - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 127.03 ms | 118.84 ms | 0.94 | 0.13 | 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.Text.RegularExpressions.Tests.Perf_Regex_Cache*'
```

### System.Text.RegularExpressions.Tests.Perf_Regex_Cache.IsMatch_Multithreading(total: 400000, unique: 1, cacheSize: 15)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.RegularExpressions.Tests.Perf_Regex_Cache.IsMatch(total: 40000, unique: 7, cacheSize: 0)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.RegularExpressions.Tests.Perf_Regex_Cache.IsMatch(total: 400000, unique: 1, cacheSize: 15)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.RegularExpressions.Tests.Perf_Regex_Cache.IsMatch(total: 40000, unique: 1600, cacheSize: 15)

#### 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 | azurelinux 3.0
Queue | CobaltAzureLinux
Baseline | [f397c835cc1c655505d2a22fd0cebb9e96733d0b](https://github.com/dotnet/runtime/commit/f397c835cc1c655505d2a22fd0cebb9e96733d0b)
Compare | [a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd](https://github.com/dotnet/runtime/commit/a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Diff | [Diff](https://github.com/dotnet/runtime/compare/f397c835cc1c655505d2a22fd0cebb9e96733d0b...a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Configs | CompilationMode:tiered, RunKind:micro

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

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

  • [SortedList - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.24 μs | 5.04 μs | 0.55 | 0.20 | False | | |
|
  • [Hashtable - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.21 μs | 11.81 μs | 0.89 | 0.22 | 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.Collections.IterateForEachNonGeneric*'
```

### System.Collections.IterateForEachNonGeneric<Int32>.SortedList(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.IterateForEachNonGeneric<Int32>.Hashtable(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 | arm64
OS | azurelinux 3.0
Queue | CobaltAzureLinux
Baseline | [f397c835cc1c655505d2a22fd0cebb9e96733d0b](https://github.com/dotnet/runtime/commit/f397c835cc1c655505d2a22fd0cebb9e96733d0b)
Compare | [a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd](https://github.com/dotnet/runtime/commit/a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Diff | [Diff](https://github.com/dotnet/runtime/compare/f397c835cc1c655505d2a22fd0cebb9e96733d0b...a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.IO.Tests.StringReaderReadLineTests

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

  • [ReadLineAsync - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.81 μs | 12.66 μs | 0.92 | 0.23 | False | | |
|
  • [ReadLine - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.80 μs | 24.40 μs | 0.95 | 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.IO.Tests.StringReaderReadLineTests*'
```

### System.IO.Tests.StringReaderReadLineTests.ReadLineAsync(LineLengthRange: [ 33, 128])

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.StringReaderReadLineTests.ReadLine(LineLengthRange: [ 9, 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 | azurelinux 3.0
Queue | CobaltAzureLinux
Baseline | [f397c835cc1c655505d2a22fd0cebb9e96733d0b](https://github.com/dotnet/runtime/commit/f397c835cc1c655505d2a22fd0cebb9e96733d0b)
Compare | [a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd](https://github.com/dotnet/runtime/commit/a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Diff | [Diff](https://github.com/dotnet/runtime/compare/f397c835cc1c655505d2a22fd0cebb9e96733d0b...a49d0cf4bb262a0bb8a2ece002155cd0a4829dbd)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.IO.Tests.BinaryReaderTests

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

  • [DefaultCtor - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 16.02 ns | 12.88 ns | 0.80 | 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.IO.Tests.BinaryReaderTests*'
```

### System.IO.Tests.BinaryReaderTests.DefaultCtor

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