dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 100 Improvements on 9/1/2026 1:51:33 AM +00:00

Open
#79,123 4 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro os-linux perf-improvement runkind-micro runtimetype-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 | [98a0a46bd543813f3e041c9e86650c2cdf20d7b6](https://github.com/dotnet/runtime/commit/98a0a46bd543813f3e041c9e86650c2cdf20d7b6)
Compare | [eaf33d448f75e519da20083ac9392098964d7c74](https://github.com/dotnet/runtime/commit/eaf33d448f75e519da20083ac9392098964d7c74)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98a0a46bd543813f3e041c9e86650c2cdf20d7b6...eaf33d448f75e519da20083ac9392098964d7c74)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.Tests.Perf_String

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

  • [CtorCharCount - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 576.40 ns | 450.58 ns | 0.78 | 0.20 | False | | |
|
  • [Substring_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 984.73 ns | 810.97 ns | 0.82 | 0.19 | False | | |
|
  • [Substring_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1024.92 ns | 844.26 ns | 0.82 | 0.17 | False | | |
|
  • [Substring_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.23 μs | 1.02 μs | 0.83 | 0.21 | False | | |
|
  • [Substring_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 969.22 ns | 822.25 ns | 0.85 | 0.17 | False | | |
|
  • [Remove_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.66 μs | 1.41 μs | 0.85 | 0.19 | False | | |
|
  • [Remove_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1073.64 ns | 917.51 ns | 0.85 | 0.18 | False | | |
|
  • [CtorCharCount - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 990.22 ns | 847.87 ns | 0.86 | 0.16 | False | | |
|
  • [Trim_CharArr - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.13 μs | 1.87 μs | 0.88 | 0.29 | False | | |
|
  • [Substring_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.18 μs | 1.05 μs | 0.89 | 0.20 | False | | |
|
  • [Remove_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.21 μs | 1.08 μs | 0.90 | 0.19 | False | | |
|
  • [TrimEnd_CharArr - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.62 μs | 1.46 μs | 0.90 | 0.18 | False | | |
|
  • [Remove_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.74 μs | 1.57 μs | 0.90 | 0.17 | False | | |
|
  • [Remove_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.38 μs | 1.25 μs | 0.91 | 0.15 | False | | |
|
  • [Insert - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.33 μs | 2.12 μs | 0.91 | 0.13 | False | | |

![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.Tests.Perf_String*'
```

### System.Tests.Perf_String.CtorCharCount(size: 1)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Substring_Int(s: "dzsdzsDDZSDZSDZSddsz", i: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 10, i2: 1)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 0, i2: 8)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Substring_Int(s: "dzsdzsDDZSDZSDZSddsz", i: 7)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Remove_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 10, i2: 1)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Remove_Int(s: "dzsdzsDDZSDZSDZSddsz", i: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.CtorCharCount(size: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Trim_CharArr(s: " Te st ", c: [' ', ' '])

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 7, i2: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Remove_Int(s: "dzsdzsDDZSDZSDZSddsz", i: 7)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.TrimEnd_CharArr(s: "Test ", c: [' ', ' '])

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Remove_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 7, i2: 4)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Remove_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 0, i2: 8)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Insert(s1: "dzsdzsDDZSDZSDZSddsz", i: 7, s2: "Test")

#### 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 | [98a0a46bd543813f3e041c9e86650c2cdf20d7b6](https://github.com/dotnet/runtime/commit/98a0a46bd543813f3e041c9e86650c2cdf20d7b6)
Compare | [eaf33d448f75e519da20083ac9392098964d7c74](https://github.com/dotnet/runtime/commit/eaf33d448f75e519da20083ac9392098964d7c74)
Diff | [Diff](https://github.com/dotnet/runtime/compare/98a0a46bd543813f3e041c9e86650c2cdf20d7b6...eaf33d448f75e519da20083ac9392098964d7c74)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Improvements in System.Tests.Perf_Enum

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

  • [GetName_Generic_NonFlags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.16 μs | 1.85 μs | 0.58 | 0.15 | False | | |
|
  • [IsDefined_Generic_NonFlags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.03 μs | 1.85 μs | 0.61 | 0.15 | False | | |
|
  • [GetNames_Generic - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.87 μs | 2.73 μs | 0.70 | 0.13 | False | | |
|
  • [GetName_Generic_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.86 μs | 2.74 μs | 0.71 | 0.15 | False | | |
|
  • [IsDefined_Generic_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.78 μs | 2.71 μs | 0.72 | 0.15 | False | | |
|
  • [TryParseGeneric_Flags - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.21 μs | 5.73 μs | 0.80 | 0.16 | False | | |
|
  • [InterpolateIntoSpan_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 27.32 μs | 23.03 μs | 0.84 | 0.12 | False | | |
|
  • [InterpolateIntoString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 32.17 μs | 27.48 μs | 0.85 | 0.16 | False | | |
|
  • [InterpolateIntoStringBuilder_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 26.02 μs | 22.28 μs | 0.86 | 0.14 | False | | |
|
  • [InterpolateIntoSpan_NonFlags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 35.34 μs | 30.93 μs | 0.88 | 0.17 | False | | |
|
  • [InterpolateIntoStringBuilder_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 33.73 μs | 29.99 μs | 0.89 | 0.19 | False | | |
|
  • [InterpolateIntoStringBuilder_NonFlags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 32.94 μs | 29.33 μs | 0.89 | 0.18 | False | | |
|
  • [InterpolateIntoSpan_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 35.36 μs | 32.25 μs | 0.91 | 0.15 | False | | |
|
  • [InterpolateIntoString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 40.56 μs | 37.78 μs | 0.93 | 0.18 | False | | |

![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.Tests.Perf_Enum*'
```

### System.Tests.Perf_Enum.GetName_Generic_NonFlags

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.IsDefined_Generic_NonFlags

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.GetNames_Generic

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.GetName_Generic_Flags

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.IsDefined_Generic_Flags

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.TryParseGeneric_Flags(text: "Red")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoSpan_Flags(value: Red)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoString(value: Red)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoStringBuilder_Flags(value: Red)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoSpan_NonFlags(value: Saturday)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoStringBuilder_Flags(value: Red, Green)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoStringBuilder_NonFlags(value: Saturday)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoSpan_Flags(value: Red, Green)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoString(value: Red, Green)

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

Review the linked benchmark results and the cited source at src/benchmarks/micro/libraries/System.Runtime/Perf.String.cs, especially the referenced lines for the string benchmarks. The report records performance improvements but does not define a code change, expected behavior, or completion condition.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.