dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/arm64: 167 Improvements on 3/7/2026 4:46:53 AM +00:00

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

### Improvements in System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>

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

  • [DeserializeFromStream - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 45.94 μs | 24.34 μs | 0.53 | 0.02 | False | | |
|
  • [DeserializeFromStream - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 46.34 μs | 24.22 μs | 0.52 | 0.02 | 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.Text.Json.Serialization.Tests.ReadJson*'
```

### System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>.DeserializeFromStream(Mode: SourceGen)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.ReadJson<IndexViewModel>.DeserializeFromStream(Mode: Reflection)

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

### Improvements in MicroBenchmarks.Serializers.Xml_ToStream<Location>

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

  • [DataContractSerializer_ - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.69 μs | 1.52 μs | 0.56 | 0.02 | False | | |
|
  • [DataContractSerializer_BinaryXml_ - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.51 μs | 876.59 ns | 0.58 | 0.04 | 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 'MicroBenchmarks.Serializers.Xml_ToStream*'
```

### MicroBenchmarks.Serializers.Xml_ToStream<Location>.DataContractSerializer_

#### ETL Files

#### Histogram

#### JIT Disasms

### MicroBenchmarks.Serializers.Xml_ToStream<Location>.DataContractSerializer_BinaryXml_

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

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

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

  • [FrozenSet - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 12.80 μs | 2.29 μs | 0.18 | 0.03 | 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.Collections.ContainsFalse*'
```

### System.Collections.ContainsFalse<Int32>.FrozenSet(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 | ubuntu 22.04
Queue | AmpereUbuntu
Baseline | [d0118d9c792f67f62b3769bb2e4f79f367034e69](https://github.com/dotnet/runtime/commit/d0118d9c792f67f62b3769bb2e4f79f367034e69)
Compare | [f09bc75bec8a9de106d5766bc27ac35e5320569c](https://github.com/dotnet/runtime/commit/f09bc75bec8a9de106d5766bc27ac35e5320569c)
Diff | [Diff](https://github.com/dotnet/runtime/compare/d0118d9c792f67f62b3769bb2e4f79f367034e69...f09bc75bec8a9de106d5766bc27ac35e5320569c)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Text.Json.Serialization.Tests.WriteJson<Hashtable>

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

  • [SerializeObjectProperty - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.48 μs | 10.57 μs | 0.41 | 0.08 | False | | |
|
  • [SerializeToString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.18 μs | 10.42 μs | 0.43 | 0.12 | False | | |
|
  • [SerializeToUtf8Bytes - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.27 μs | 9.41 μs | 0.40 | 0.09 | False | | |
|
  • [SerializeToStream - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.28 μs | 9.22 μs | 0.41 | 0.06 | False | | |
|
  • [SerializeToStream - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.32 μs | 9.18 μs | 0.41 | 0.09 | False | | |
|
  • [SerializeObjectProperty - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.48 μs | 10.60 μs | 0.43 | 0.02 | False | | |
|
  • [SerializeToWriter - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.49 μs | 8.83 μs | 0.41 | 0.06 | False | | |
|
  • [SerializeToString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.50 μs | 10.31 μs | 0.44 | 0.09 | False | | |
|
  • [SerializeToUtf8Bytes - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.76 μs | 9.39 μs | 0.43 | 0.04 | False | | |
|
  • [SerializeToWriter - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.13 μs | 8.91 μs | 0.42 | 0.06 | 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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.WriteJson*'
```

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeObjectProperty(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToString(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToUtf8Bytes(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToStream(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToStream(Mode: SourceGen)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeObjectProperty(Mode: SourceGen)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToWriter(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToString(Mode: SourceGen)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToUtf8Bytes(Mode: SourceGen)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Hashtable>.SerializeToWriter(Mode: SourceGen)

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

### Improvements in System.Text.Json.Serialization.Tests.WriteJson<Dictionary<String, String>>

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

  • [SerializeToString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 18.29 μs | 7.79 μs | 0.43 | 0.02 | False | | |
|
  • [SerializeToUtf8Bytes - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 17.38 μs | 6.82 μs | 0.39 | 0.01 | False | | |
|
  • [SerializeObjectProperty - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 18.29 μs | 8.03 μs | 0.44 | 0.01 | False | | |
|
  • [SerializeToStream - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 16.96 μs | 6.88 μs | 0.41 | 0.01 | False | | |
|
  • [SerializeToWriter - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 16.54 μs | 6.30 μs | 0.38 | 0.01 | False | | |

![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.Text.Json.Serialization.Tests.WriteJson>*'
```

### System.Text.Json.Serialization.Tests.WriteJson<Dictionary<String, String>>.SerializeToString(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Dictionary<String, String>>.SerializeToUtf8Bytes(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Dictionary<String, String>>.SerializeObjectProperty(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Dictionary<String, String>>.SerializeToStream(Mode: Reflection)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Serialization.Tests.WriteJson<Dictionary<String, String>>.SerializeToWriter(Mode: Reflection)

#### 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 | [d0118d9c792f67f62b3769bb2e4f79f367034e69](https://github.com/dotnet/runtime/commit/d0118d9c792f67f62b3769bb2e4f79f367034e69)
Compare | [f09bc75bec8a9de106d5766bc27ac35e5320569c](https://github.com/dotnet/runtime/commit/f09bc75bec8a9de106d5766bc27ac35e5320569c)
Diff | [Diff](https://github.com/dotnet/runtime/compare/d0118d9c792f67f62b3769bb2e4f79f367034e69...f09bc75bec8a9de106d5766bc27ac35e5320569c)
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
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [TakeLastHalf - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.66 μs | 567.36 ns | 0.15 | 0.03 | False | | |
|
  • [Take_All - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 739.47 ns | 514.64 ns | 0.70 | 0.22 | False | | |
|
  • [Select - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 726.21 ns | 417.00 ns | 0.57 | 0.07 | False | | |
|
  • [TakeLastHalf - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 6.55 μs | 1.10 μs | 0.17 | 0.49 | False | | |
|
  • [OrderByThenBy - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.02 μs | 3.02 μs | 0.43 | 0.13 | False | | |
|
  • [Select - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 934.01 ns | 422.75 ns | 0.45 | 0.13 | 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.Linq.Tests.Perf_Enumerable*'
```

### System.Linq.Tests.Perf_Enumerable.TakeLastHalf(input: List)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.Select(input: IList)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.Select(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)

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.