dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/arm64: 26 Improvements on 8/4/2026 8:53:30 PM +00:00

Open
#77,469 2 comments 0 reactions 0 assignees View on GitHub
arch-arm64 bdn-update branch-refs/heads/main compilationmode-tiered kind-micro Look Again 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 | [2dd5330804f9d4f49599d82c90a67892d4dd8af0](https://github.com/dotnet/runtime/commit/2dd5330804f9d4f49599d82c90a67892d4dd8af0)
Compare | [173e6b40e02cd1652102c09e07bd4cf7320b3d4d](https://github.com/dotnet/runtime/commit/173e6b40e02cd1652102c09e07bd4cf7320b3d4d)
Diff | [Diff](https://github.com/dotnet/runtime/compare/2dd5330804f9d4f49599d82c90a67892d4dd8af0...173e6b40e02cd1652102c09e07bd4cf7320b3d4d)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Reflection.Metadata.Perf_TypeName

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

  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.48 μs | 1.87 μs | 0.54 | 0.18 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1046.08 ns | 812.43 ns | 0.78 | 0.15 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.44 μs | 2.82 μs | 0.82 | 0.19 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1094.18 ns | 903.54 ns | 0.83 | 0.20 | False | | |
|
  • [Parse_FullNames - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.48 μs | 2.05 μs | 0.83 | 0.21 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1163.32 ns | 967.09 ns | 0.83 | 0.23 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1141.13 ns | 951.51 ns | 0.83 | 0.21 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.43 μs | 2.88 μs | 0.84 | 0.15 | False | | |
|
  • [ParseAndGetAssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.33 μs | 1.12 μs | 0.84 | 0.16 | False | | |
|
  • [Parse_FullNames - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.53 μs | 2.13 μs | 0.84 | 0.18 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1160.97 ns | 982.05 ns | 0.85 | 0.18 | False | | |
|
  • [Parse_FullNames - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 6.41 μs | 5.45 μs | 0.85 | 0.18 | False | | |
|
  • [Parse_AssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.43 μs | 6.32 μs | 0.85 | 0.19 | False | | |
|
  • [ParseAndGetAssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.40 μs | 1.21 μs | 0.87 | 0.21 | False | | |
|
  • [ParseAndGetAssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.10 μs | 3.55 μs | 0.87 | 0.15 | False | | |
|
  • [ParseAndGetFullName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.05 μs | 2.65 μs | 0.87 | 0.20 | False | | |
|
  • [ParseAndGetFullName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.10 μs | 2.71 μs | 0.87 | 0.16 | False | | |
|
  • [ParseAndGetAssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.24 μs | 1.08 μs | 0.88 | 0.21 | False | | |
|
  • [ParseAndGetAssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.36 μs | 1.20 μs | 0.88 | 0.16 | False | | |
|
  • [ParseAndGetAssemblyQualifiedName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.39 μs | 1.23 μs | 0.88 | 0.19 | False | | |
|
  • [ParseAndGetFullName - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.65 μs | 6.83 μs | 0.89 | 0.12 | False | | |

![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![graph]()
![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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Reflection.Metadata.Perf_TypeName*'
```

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Collections.Generic.Dictionary`2[]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Reflection.Metadata.Nested))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Collections.Generic.Dictionary<String, Boolean>))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(int))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_FullNames(input: typeof(System.Collections.Generic.Dictionary`2[]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Int32[,]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Int32&))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Reflection.Metadata.NestedGeneric<String, Boolean>))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetAssemblyQualifiedName(input: typeof(int))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_FullNames(input: typeof(System.Reflection.Metadata.NestedGeneric<String, Boolean>))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Int32[*]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_FullNames(input: typeof(System.Collections.Generic.Dictionary`2[]) (COMPLEX))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.Parse_AssemblyQualifiedName(input: typeof(System.Collections.Generic.Dictionary`2[]) (COMPLEX))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetAssemblyQualifiedName(input: typeof(System.Int32[,]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetAssemblyQualifiedName(input: typeof(System.Reflection.Metadata.NestedGeneric<String, Boolean>))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetFullName(input: typeof(System.Collections.Generic.Dictionary`2[]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetFullName(input: typeof(System.Reflection.Metadata.NestedGeneric<String, Boolean>))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetAssemblyQualifiedName(input: typeof(System.Reflection.Metadata.Nested))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetAssemblyQualifiedName(input: typeof(System.Int32*))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetAssemblyQualifiedName(input: typeof(System.Int32[*]))

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Reflection.Metadata.Perf_TypeName.ParseAndGetFullName(input: typeof(System.Collections.Generic.Dictionary`2[]) (COMPLEX))

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

Research direction

Start with the benchmark source at src/benchmarks/micro/libraries/System.Reflection.Metadata/Perf.TypeName.cs#L44-L50 and review the linked baseline and comparison reports for Parse_AssemblyQualifiedName and Parse_FullNames on arm64 Azure Linux. Done requires determining whether these reported improvements need follow-up and recording an actionable conclusion.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, linux
Domain
operating-systems, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.