dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 18 Improvements on 3/6/2026 8:16:10 AM +00:00

Open
#70,041 0 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main kind-micro os-linux 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 | [51b1e92136c22c1828393b23571de0c2a49e9f62](https://github.com/dotnet/runtime/commit/51b1e92136c22c1828393b23571de0c2a49e9f62)
Compare | [d0118d9c792f67f62b3769bb2e4f79f367034e69](https://github.com/dotnet/runtime/commit/d0118d9c792f67f62b3769bb2e4f79f367034e69)
Diff | [Diff](https://github.com/dotnet/runtime/compare/51b1e92136c22c1828393b23571de0c2a49e9f62...d0118d9c792f67f62b3769bb2e4f79f367034e69)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.Memory.Span<Char>

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

  • [BinarySearch - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 48.94 ns | 38.05 ns | 0.78 | 0.22 | False | | |
|
  • [StartsWith - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 37.97 ns | 28.27 ns | 0.74 | 0.24 | False | | |
|
  • [LastIndexOfValue - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 89.93 ns | 73.60 ns | 0.82 | 0.27 | False | | |
|
  • [Fill - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 27.14 ns | 16.90 ns | 0.62 | 0.27 | False | | |
|
  • [IndexOfAnyFiveValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 99.28 ns | 67.84 ns | 0.68 | 0.10 | False | | |
|
  • [IndexOfAnyThreeValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 50.43 ns | 40.46 ns | 0.80 | 0.17 | False | | |
|
  • [IndexOfAnyThreeValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 66.85 ns | 56.24 ns | 0.84 | 0.25 | False | | |
|
  • [Clear - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.48 ns | 13.81 ns | 0.59 | 0.20 | False | | |
|
  • [IndexOfAnyFiveValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 53.10 ns | 43.24 ns | 0.81 | 0.15 | False | | |
|
  • [Fill - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 37.81 ns | 19.70 ns | 0.52 | 0.23 | False | | |
|
  • [IndexOfAnyTwoValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 48.61 ns | 40.36 ns | 0.83 | 0.20 | False | | |
|
  • [BinarySearch - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 55.64 ns | 45.10 ns | 0.81 | 0.17 | False | | |
|
  • [IndexOfAnyFourValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 221.69 ns | 210.06 ns | 0.95 | 0.04 | False | | |
|
  • [LastIndexOfAnyValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 61.85 ns | 53.73 ns | 0.87 | 0.20 | False | | |
|
  • [IndexOfAnyFourValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 71.24 ns | 59.95 ns | 0.84 | 0.09 | False | | |
|
  • [IndexOfAnyFourValues - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 53.81 ns | 43.09 ns | 0.80 | 0.16 | False | | |
|
  • [SequenceCompareTo - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 67.87 ns | 56.90 ns | 0.84 | 0.16 | False | | |
|
  • [IndexOfValue - Duration of single invocation]()
  • ๐Ÿ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 72.29 ns | 44.17 ns | 0.61 | 0.24 | False | | |

![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.Memory.Span*'
```

### System.Memory.Span<Char>.BinarySearch(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.StartsWith(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.LastIndexOfValue(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.Fill(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyFiveValues(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyThreeValues(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyThreeValues(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.Clear(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyFiveValues(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.Fill(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyTwoValues(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.BinarySearch(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyFourValues(Size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.LastIndexOfAnyValues(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyFourValues(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfAnyFourValues(Size: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.SequenceCompareTo(Size: 33)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Memory.Span<Char>.IndexOfValue(Size: 33)

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