dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 1050 Improvements on 3/6/2026 3:17:01 AM +00:00

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

### Improvements in System.Memory.Constructors_ValueTypesOnly<Byte>

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

  • [ReadOnlyFromPointerLength - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 35.58 ns | 12.96 ns | 0.36 | 0.21 | False | | |
|
  • [SpanFromPointerLength - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.06 ns | 18.94 ns | 0.79 | 0.19 | 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.Memory.Constructors_ValueTypesOnly*'
```

### System.Memory.Constructors_ValueTypesOnly<Byte>.ReadOnlyFromPointerLength

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Constructors_ValueTypesOnly<Byte>.SpanFromPointerLength

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

### Improvements in System.Numerics.Tests.Perf_VectorOf<Double>

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

  • [AbsBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.39 ns | 12.34 ns | 0.55 | 0.21 | False | | |
|
  • [UnaryNegateOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 31.67 ns | 11.91 ns | 0.38 | 0.20 | False | | |
|
  • [OnesComplementOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.31 ns | 13.11 ns | 0.56 | 0.22 | False | | |
|
  • [AndNotBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 32.79 ns | 13.10 ns | 0.40 | 0.22 | False | | |
|
  • [XorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.00 ns | 12.38 ns | 0.50 | 0.13 | False | | |
|
  • [SquareRootBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.52 ns | 17.03 ns | 0.72 | 0.23 | False | | |
|
  • [SubtractionOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 27.49 ns | 14.56 ns | 0.53 | 0.24 | False | | |
|
  • [LessThanOrEqualBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.47 ns | 12.59 ns | 0.54 | 0.21 | False | | |
|
  • [AddBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.36 ns | 12.36 ns | 0.53 | 0.23 | False | | |
|
  • [MaxBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.18 ns | 13.05 ns | 0.54 | 0.26 | False | | |
|
  • [MultiplyBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 27.31 ns | 14.72 ns | 0.54 | 0.24 | False | | |
|
  • [MinBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.91 ns | 12.85 ns | 0.54 | 0.24 | False | | |
|
  • [ConditionalSelectBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.96 ns | 13.18 ns | 0.55 | 0.33 | False | | |
|
  • [ExclusiveOrOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.74 ns | 13.01 ns | 0.55 | 0.20 | False | | |
|
  • [AddOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.40 ns | 13.13 ns | 0.56 | 0.23 | False | | |
|
  • [EqualsStaticBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 32.32 ns | 12.66 ns | 0.39 | 0.24 | False | | |
|
  • [BitwiseAndBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 27.04 ns | 13.37 ns | 0.49 | 0.24 | False | | |
|
  • [BitwiseOrOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.91 ns | 14.57 ns | 0.61 | 0.24 | False | | |
|
  • [SubtractBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.43 ns | 12.93 ns | 0.55 | 0.18 | False | | |
|
  • [CountBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.04 ns | 0.21 ns | 0.02 | 0.91 | False | | |
|
  • [LessThanBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.90 ns | 12.52 ns | 0.52 | 0.18 | False | | |
|
  • [DivisionOperatorBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.22 ns | 13.24 ns | 0.52 | 0.25 | False | | |
|
  • [DivideBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.62 ns | 14.25 ns | 0.60 | 0.20 | False | | |
|
  • [ZeroBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.81 ns | 13.21 ns | 0.58 | 0.18 | False | | |
|
  • [EqualsBenchmark - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.89 ns | 14.29 ns | 0.57 | 0.33 | False | | |

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

### System.Numerics.Tests.Perf_VectorOf<Double>.AbsBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.UnaryNegateOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.OnesComplementOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.AndNotBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.XorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.SquareRootBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.SubtractionOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.LessThanOrEqualBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.AddBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.MaxBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.MultiplyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.MinBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.ConditionalSelectBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.ExclusiveOrOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.AddOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.EqualsStaticBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.BitwiseAndBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.BitwiseOrOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.SubtractBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.CountBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.LessThanBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.DivisionOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.DivideBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.ZeroBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<Double>.EqualsBenchmark

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