dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 13 Improvements on 8/8/2026 4:13:10 AM +00:00

Open
#77,701 1 comment 0 reactions 0 assignees View on GitHub
arch-x64 branch-refs/heads/main compilationmode-tiered kind-micro Look Again os-linux perf-improvement PGO 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [7da460b99b9c7e76b3060ef6da6687a008263ab9](https://github.com/dotnet/runtime/commit/7da460b99b9c7e76b3060ef6da6687a008263ab9)
Compare | [f5f5f83dd8676416636eda75d8c091c6c4f8d506](https://github.com/dotnet/runtime/commit/f5f5f83dd8676416636eda75d8c091c6c4f8d506)
Diff | [Diff](https://github.com/dotnet/runtime/compare/7da460b99b9c7e76b3060ef6da6687a008263ab9...f5f5f83dd8676416636eda75d8c091c6c4f8d506)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in Exceptions.Handling

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

  • [ThrowAndCatchDeepRecursive - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.38 μs | 3.46 μs | 0.79 | 0.05 | False | | |
|
  • [ThrowAndCatchDeep - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.98 μs | 3.25 μs | 0.82 | 0.07 | False | | |
|
  • [ThrowAndCatchDeep - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 6.57 μs | 5.62 μs | 0.85 | 0.03 | False | | |
|
  • [ThrowAndCatchDeepRecursive - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 6.84 μs | 5.93 μs | 0.87 | 0.02 | False | | |
|
  • [ThrowAndCatch - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.32 μs | 1.15 μs | 0.87 | 0.06 | False | | |
|
  • [ThrowAndCatchDeepRecursive - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.57 μs | 10.44 μs | 0.90 | 0.03 | False | | |
|
  • [TryAndCatchDeep_CaugtAtTheTop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.65 μs | 4.23 μs | 0.91 | 0.17 | False | | |
|
  • [ThrowAndCatchDeep - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.57 μs | 7.82 μs | 0.91 | 0.06 | False | | |
|
  • [ThrowAndCatchDeepRecursive - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.76 μs | 8.04 μs | 0.92 | 0.04 | False | | |
|
  • [MultipleNestedTryCatch_FirstCatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.25 μs | 1.15 μs | 0.92 | 0.07 | False | | |
|
  • [ThrowAndCatchWhen - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.32 μs | 1.22 μs | 0.92 | 0.10 | False | | |
|
  • [ThrowAndCatch_ManyCatchBlocks - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.94 μs | 3.67 μs | 0.93 | 0.03 | False | | |
|
  • [CatchAndThrowOtherDeep - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 17.04 μs | 16.09 μs | 0.94 | 0.01 | False | | |

![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
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'Exceptions.Handling*'
```

### Exceptions.Handling.ThrowAndCatchDeepRecursive(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchDeep(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchDeep(kind: ReflectionSoftware)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchDeepRecursive(kind: ReflectionSoftware)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatch(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchDeepRecursive(kind: ReflectionHardware)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.TryAndCatchDeep_CaugtAtTheTop(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchDeep(kind: Hardware)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchDeepRecursive(kind: Hardware)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.MultipleNestedTryCatch_FirstCatches(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchWhen(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatch_ManyCatchBlocks(kind: ReflectionSoftware)

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.CatchAndThrowOtherDeep(kind: Software)

#### 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 in src/benchmarks/micro/runtime/Exceptions/Handling.cs, especially the listed ranges around lines 60-77, 194-211, 226-243, and 494-509. Compare the baseline and test results for the Linux/x64 Ubuntu 22.04 run, then determine which of the 13 reported improvements has an actionable runtime change; completion is not defined by the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, linux, ubuntu
Domain
operating-systems, performance, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.