dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 77 Improvements on 2/26/2026 7:23:53 AM +00:00

Open
#69,449 4 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main kind-micro os-linux oversized-issue perf-improvement PGO 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 | [c4066cf778a3fde110c0ab6691baa941d95a5e0c](https://github.com/dotnet/runtime/commit/c4066cf778a3fde110c0ab6691baa941d95a5e0c)
Compare | [eae0a64e4c28b1a692c02650a8d15d6383a6e72b](https://github.com/dotnet/runtime/commit/eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Diff | [Diff](https://github.com/dotnet/runtime/compare/c4066cf778a3fde110c0ab6691baa941d95a5e0c...eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.MathBenchmarks.Double

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

  • [Exp2M1 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 129.78 μs | 114.26 μs | 0.88 | 0.07 | False | | |
|
  • [Asin - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 109.32 μs | 79.71 μs | 0.73 | 0.14 | False | | |
|
  • [Log10 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 151.79 μs | 86.17 μs | 0.57 | 0.04 | False | | |
|
  • [Exp2 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 105.75 μs | 95.91 μs | 0.91 | 0.21 | False | | |
|
  • [Tan - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 130.59 μs | 83.20 μs | 0.64 | 0.31 | False | | |
|
  • [Exp - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 78.06 μs | 43.72 μs | 0.56 | 0.38 | False | | |
|
  • [Acos - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 81.72 μs | 57.80 μs | 0.71 | 0.56 | False | | |
|
  • [Sin - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 65.33 μs | 47.58 μs | 0.73 | 0.29 | False | | |
|
  • [Pow - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 147.70 μs | 94.50 μs | 0.64 | 0.31 | False | | |
|
  • [AcosPi - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 75.49 μs | 68.49 μs | 0.91 | 0.11 | False | | |
|
  • [AtanPi - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 93.23 μs | 69.48 μs | 0.75 | 0.09 | False | | |
|
  • [Atan - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 79.17 μs | 56.90 μs | 0.72 | 0.52 | False | | |
|
  • [Atan2 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 118.59 μs | 88.58 μs | 0.75 | 0.07 | 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 'System.MathBenchmarks.Double*'
```

### System.MathBenchmarks.Double.Exp2M1

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Asin

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Log10

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Exp2

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Tan

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Exp

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Acos

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Sin

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Pow

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.AcosPi

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.AtanPi

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Atan

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Double.Atan2

#### 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [c4066cf778a3fde110c0ab6691baa941d95a5e0c](https://github.com/dotnet/runtime/commit/c4066cf778a3fde110c0ab6691baa941d95a5e0c)
Compare | [eae0a64e4c28b1a692c02650a8d15d6383a6e72b](https://github.com/dotnet/runtime/commit/eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Diff | [Diff](https://github.com/dotnet/runtime/compare/c4066cf778a3fde110c0ab6691baa941d95a5e0c...eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.MathBenchmarks.Single

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

  • [Exp10 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 67.98 μs | 53.45 μs | 0.79 | 0.14 | False | | |
|
  • [Asin - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 72.50 μs | 39.32 μs | 0.54 | 0.32 | False | | |
|
  • [Log10 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 125.39 μs | 71.36 μs | 0.57 | 0.11 | False | | |
|
  • [Atan2 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 86.22 μs | 72.94 μs | 0.85 | 0.11 | False | | |
|
  • [Exp - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 64.52 μs | 38.66 μs | 0.60 | 0.45 | False | | |
|
  • [Exp2 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 64.69 μs | 59.12 μs | 0.91 | 0.10 | False | | |
|
  • [Pow - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 86.85 μs | 60.57 μs | 0.70 | 0.16 | False | | |
|
  • [Acosh - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 82.44 μs | 56.00 μs | 0.68 | 0.10 | False | | |
|
  • [ExpM1 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 52.08 μs | 44.30 μs | 0.85 | 0.14 | False | | |
|
  • [Exp2M1 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 94.96 μs | 78.03 μs | 0.82 | 0.22 | False | | |
|
  • [Atan - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 61.90 μs | 42.46 μs | 0.69 | 0.37 | False | | |
|
  • [Acos - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 75.26 μs | 50.08 μs | 0.67 | 0.37 | 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.MathBenchmarks.Single*'
```

### System.MathBenchmarks.Single.Exp10

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Asin

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Log10

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Atan2

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Exp

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Exp2

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Pow

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Acosh

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.ExpM1

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Exp2M1

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Atan

#### ETL Files

#### Histogram

#### JIT Disasms

### System.MathBenchmarks.Single.Acos

#### 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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [c4066cf778a3fde110c0ab6691baa941d95a5e0c](https://github.com/dotnet/runtime/commit/c4066cf778a3fde110c0ab6691baa941d95a5e0c)
Compare | [eae0a64e4c28b1a692c02650a8d15d6383a6e72b](https://github.com/dotnet/runtime/commit/eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Diff | [Diff](https://github.com/dotnet/runtime/compare/c4066cf778a3fde110c0ab6691baa941d95a5e0c...eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.Collections.CreateAddAndClear<String>

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

  • [ImmutableStack - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.02 μs | 10.91 μs | 0.84 | 0.24 | False | | |
|
  • [List - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.30 μs | 9.25 μs | 0.82 | 0.11 | False | | |
|
  • [Array - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.04 μs | 7.88 μs | 0.87 | 0.13 | 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.Collections.CreateAddAndClear*'
```

### System.Collections.CreateAddAndClear<String>.ImmutableStack(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CreateAddAndClear<String>.List(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Collections.CreateAddAndClear<String>.Array(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 | x64
OS | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [c4066cf778a3fde110c0ab6691baa941d95a5e0c](https://github.com/dotnet/runtime/commit/c4066cf778a3fde110c0ab6691baa941d95a5e0c)
Compare | [eae0a64e4c28b1a692c02650a8d15d6383a6e72b](https://github.com/dotnet/runtime/commit/eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Diff | [Diff](https://github.com/dotnet/runtime/compare/c4066cf778a3fde110c0ab6691baa941d95a5e0c...eae0a64e4c28b1a692c02650a8d15d6383a6e72b)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in Exceptions.Handling

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

  • [MultipleNestedTryCatch_LastCatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.21 μs | 1.05 μs | 0.86 | 0.10 | False | | |
|
  • [ThrowAndCatch - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 911.08 ns | 705.07 ns | 0.77 | 0.11 | False | | |
|
  • [ThrowAndCatchFinally - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 933.32 ns | 838.91 ns | 0.90 | 0.11 | False | | |
|
  • [ThrowAndCatchWhen - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 925.61 ns | 833.43 ns | 0.90 | 0.10 | False | | |
|
  • [CatchAndThrowOtherDeep - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.27 μs | 7.97 μs | 0.86 | 0.08 | False | | |
|
  • [MultipleNestedTryCatch_FirstCatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 959.36 ns | 720.00 ns | 0.75 | 0.13 | False | | |
|
  • [ThrowAndCatchWhenFinally - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.05 μs | 724.16 ns | 0.69 | 0.08 | False | | |

![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.MultipleNestedTryCatch_LastCatches(kind: Software)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### Exceptions.Handling.ThrowAndCatchWhenFinally(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

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.