dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/arm64: 15 Improvements on 1/7/2026 4:35:05 PM +00:00

Open
#67,837 0 comments 0 reactions 0 assignees View on GitHub
ampere arch-arm64 branch-refs/heads/main kind-micro os-linux perf-improvement 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 | [cadd41f32efd0ec45bb8f2fe35f822370a277a24](https://github.com/dotnet/runtime/commit/cadd41f32efd0ec45bb8f2fe35f822370a277a24)
Compare | [6bfcf6c6c21504e521d757445af609cb8d2e0f53](https://github.com/dotnet/runtime/commit/6bfcf6c6c21504e521d757445af609cb8d2e0f53)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cadd41f32efd0ec45bb8f2fe35f822370a277a24...6bfcf6c6c21504e521d757445af609cb8d2e0f53)
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
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [CastToSameType - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 247.61 ns | 100.00 ns | 0.40 | 0.00 | False | | |
|
  • [ToList - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 502.04 ns | 371.93 ns | 0.74 | 0.21 | False | | |
|
  • [FirstWithPredicate_LastElementMatches - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 200.19 ns | 132.82 ns | 0.66 | 0.00 | False | | |
|
  • [LastWithPredicate_FirstElementMatches - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 202.68 ns | 191.58 ns | 0.95 | 0.00 | False | | |
|
  • [WhereAny_LastElementMatches - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 216.24 ns | 148.47 ns | 0.69 | 0.17 | False | | |
|
  • [ElementAt - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 102.01 ns | 50.36 ns | 0.49 | 0.00 | False | | |
|
  • [Count - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 193.37 ns | 66.80 ns | 0.35 | 0.00 | False | | |
|
  • [All_AllElementsMatch - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 196.85 ns | 99.82 ns | 0.51 | 0.01 | False | | |
|
  • [Aggregate_Seed - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 200.76 ns | 68.51 ns | 0.34 | 0.00 | False | | |
|
  • [Sum - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 197.31 ns | 98.96 ns | 0.50 | 0.00 | False | | |
|
  • [AnyWithPredicate_LastElementMatches - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 199.82 ns | 133.13 ns | 0.67 | 0.00 | False | | |
|
  • [WhereFirst_LastElementMatches - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 221.15 ns | 153.56 ns | 0.69 | 0.15 | False | | |

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

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.FirstWithPredicate_LastElementMatches(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.WhereAny_LastElementMatches(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

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

### Improvements in System.Linq.Tests.Perf_ImmutableArrayExtensions

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

  • [SequenceEqual - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 252.43 ns | 167.54 ns | 0.66 | 0.01 | False | | |
|
  • [SequenceEqual - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 251.83 ns | 166.72 ns | 0.66 | 0.02 | False | | |
|
  • [SequenceEqual - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 251.51 ns | 167.31 ns | 0.67 | 0.00 | 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Linq.Tests.Perf_ImmutableArrayExtensions*'
```

### System.Linq.Tests.Perf_ImmutableArrayExtensions.SequenceEqual(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_ImmutableArrayExtensions.SequenceEqual(input: ICollection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_ImmutableArrayExtensions.SequenceEqual(input: IList)

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