dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 78 Improvements on 7/10/2026 4:12:43 PM +00:00

Open
#76,180 3 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro Look Again os-linux perf-improvement PGO runkind-micro 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 | [c369fd627a26b606f36e6b3cbef6f25f3c00bbac](https://github.com/dotnet/runtime/commit/c369fd627a26b606f36e6b3cbef6f25f3c00bbac)
Compare | [2f3204f6e8df27046832bb56afa980a923deaf91](https://github.com/dotnet/runtime/commit/2f3204f6e8df27046832bb56afa980a923deaf91)
Diff | [Diff](https://github.com/dotnet/runtime/compare/c369fd627a26b606f36e6b3cbef6f25f3c00bbac...2f3204f6e8df27046832bb56afa980a923deaf91)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.Numerics.Tests.Perf_Matrix4x4

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

  • [LerpBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 939.38 ns | 196.70 ns | 0.21 | 0.39 | False | | |
|
  • [CreateWorldBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 687.11 ns | 157.57 ns | 0.23 | 0.20 | False | | |
|
  • [CreateConstrainedBillboardBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 925.05 ns | 249.97 ns | 0.27 | 0.20 | False | | |
|
  • [CreateBillboardBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 619.28 ns | 187.17 ns | 0.30 | 0.24 | False | | |
|
  • [CreateFromScalars - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 50.02 ns | 15.75 ns | 0.31 | 0.33 | False | | |
|
  • [CreateLookAtBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 928.75 ns | 453.66 ns | 0.49 | 0.19 | False | | |
|
  • [DecomposeBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 844.77 ns | 514.79 ns | 0.61 | 0.25 | False | | |
|
  • [CreateScaleFromScalarXYZBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 66.40 ns | 41.41 ns | 0.62 | 0.03 | False | | |
|
  • [CreateScaleFromScalarXYZWithCenterBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 66.27 ns | 41.95 ns | 0.63 | 0.04 | False | | |
|
  • [CreateShadowBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 374.46 ns | 300.37 ns | 0.80 | 0.22 | False | | |
|
  • [CreateReflectionBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 333.12 ns | 269.11 ns | 0.81 | 0.18 | False | | |
|
  • [CreateScaleFromVectorWithCenterBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 85.04 ns | 77.97 ns | 0.92 | 0.04 | False | | |
|
  • [CreateFromYawPitchRollBenchmarkBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.75 ΞΌs | 1.61 ΞΌs | 0.92 | 0.19 | 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.Numerics.Tests.Perf_Matrix4x4*'
```

### System.Numerics.Tests.Perf_Matrix4x4.LerpBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateWorldBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateConstrainedBillboardBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateBillboardBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateFromScalars

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateLookAtBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.DecomposeBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromScalarXYZBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromScalarXYZWithCenterBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateShadowBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateReflectionBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromVectorWithCenterBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Matrix4x4.CreateFromYawPitchRollBenchmarkBenchmark

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

### Improvements in System.Numerics.Tests.Perf_Vector2

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

  • [NormalizeBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 119.60 ns | 62.77 ns | 0.52 | 0.03 | False | | |
|
  • [LengthSquaredBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 71.25 ns | 50.40 ns | 0.71 | 0.16 | False | | |
|
  • [ReflectBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 168.74 ns | 122.01 ns | 0.72 | 0.02 | False | | |
|
  • [LengthBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 77.69 ns | 56.85 ns | 0.73 | 0.17 | False | | |
|
  • [DistanceSquaredBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 89.90 ns | 74.54 ns | 0.83 | 0.11 | False | | |
|
  • [NegateOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 14.56 ns | 12.31 ns | 0.85 | 0.53 | False | | |
|
  • [LerpBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 72.50 ns | 61.58 ns | 0.85 | 0.18 | False | | |
|
  • [DistanceBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 95.48 ns | 81.29 ns | 0.85 | 0.02 | False | | |
|
  • [SquareRootBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 18.10 ns | 15.81 ns | 0.87 | 0.47 | False | | |
|
  • [TransformByMatrix3x2Benchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 137.03 ns | 120.04 ns | 0.88 | 0.07 | 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.Numerics.Tests.Perf_Vector2*'
```

### System.Numerics.Tests.Perf_Vector2.NormalizeBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.LengthSquaredBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.ReflectBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.LengthBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.DistanceSquaredBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.NegateOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.LerpBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.DistanceBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.SquareRootBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector2.TransformByMatrix3x2Benchmark

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

### Improvements in System.Numerics.Tests.Perf_Vector3

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

  • [NormalizeBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 127.10 ns | 58.45 ns | 0.46 | 0.26 | False | | |
|
  • [ReflectBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 195.00 ns | 106.91 ns | 0.55 | 0.32 | False | | |
|
  • [LerpBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 86.54 ns | 63.11 ns | 0.73 | 0.31 | False | | |
|
  • [LengthSquaredBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 54.84 ns | 41.75 ns | 0.76 | 0.19 | False | | |
|
  • [LengthBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 61.32 ns | 48.41 ns | 0.79 | 0.16 | False | | |
|
  • [DistanceSquaredBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 73.72 ns | 60.17 ns | 0.82 | 0.13 | False | | |
|
  • [DistanceBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 80.00 ns | 66.41 ns | 0.83 | 0.10 | 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 'System.Numerics.Tests.Perf_Vector3*'
```

### System.Numerics.Tests.Perf_Vector3.NormalizeBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector3.ReflectBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector3.LerpBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector3.LengthSquaredBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector3.LengthBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector3.DistanceSquaredBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_Vector3.DistanceBenchmark

#### 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 linked benchmark reports and the referenced source at src/benchmarks/micro/libraries/System.Numerics.Vectors/Perf_Matrix4x4.cs, then compare the listed baseline and compare commits. The issue does not define a code change or acceptance test; work would be complete only after the performance findings have been explained and an agreed follow-up is identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, ubuntu, wasm
Domain
performance
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.