dotnet / dotnet/perf-autofiling-issues

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

Open
#78,916 6 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_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]()
| 2.96 μs | 1.82 μs | 0.61 | 0.15 | False | | |
|
  • [IsDefined_Generic_NonFlags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.00 μs | 1.89 μs | 0.63 | 0.14 | False | | |
|
  • [GetNames_Generic - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.91 μs | 2.66 μs | 0.68 | 0.12 | False | | |
|
  • [IsDefined_Generic_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.79 μs | 2.69 μs | 0.71 | 0.14 | False | | |
|
  • [GetName_Generic_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 3.81 μs | 2.75 μs | 0.72 | 0.14 | False | | |
|
  • [TryParseGeneric_Flags - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.48 μs | 5.78 μs | 0.77 | 0.17 | False | | |
|
  • [InterpolateIntoStringBuilder_NonFlags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 35.88 μs | 29.36 μs | 0.82 | 0.17 | False | | |
|
  • [InterpolateIntoStringBuilder_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 26.06 μs | 21.72 μs | 0.83 | 0.13 | False | | |
|
  • [InterpolateIntoSpan_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 27.84 μs | 23.27 μs | 0.84 | 0.11 | False | | |
|
  • [InterpolateIntoString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 32.00 μs | 27.07 μs | 0.85 | 0.16 | False | | |
|
  • [GetValuesAsUnderlyingType_Generic - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 2.92 μs | 2.47 μs | 0.85 | 0.14 | False | | |
|
  • [InterpolateIntoStringBuilder_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 33.61 μs | 28.56 μs | 0.85 | 0.18 | False | | |
|
  • [GetValuesAsUnderlyingType_NonGeneric - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 2.84 μs | 2.42 μs | 0.85 | 0.10 | False | | |
|
  • [InterpolateIntoString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 41.08 μs | 35.15 μs | 0.86 | 0.17 | False | | |
|
  • [GetName_NonGeneric_Flags - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.86 μs | 4.25 μs | 0.87 | 0.16 | False | | |
|
  • [InterpolateIntoSpan_Flags - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 35.04 μs | 31.53 μs | 0.90 | 0.13 | False | | |

![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.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.IsDefined_Generic_Flags

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.GetName_Generic_Flags

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoStringBuilder_Flags(value: 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.GetValuesAsUnderlyingType_Generic

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.GetValuesAsUnderlyingType_NonGeneric

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.GetName_NonGeneric_Flags

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Enum.InterpolateIntoSpan_Flags(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)

---

### 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]()
| 573.96 ns | 439.68 ns | 0.77 | 0.18 | False | | |
|
  • [CtorCharCount - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1002.93 ns | 808.91 ns | 0.81 | 0.14 | False | | |
|
  • [Substring_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 981.18 ns | 821.01 ns | 0.84 | 0.19 | False | | |
|
  • [Trim_CharArr - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.96 μs | 1.68 μs | 0.86 | 0.20 | False | | |
|
  • [Substring_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 942.66 ns | 813.24 ns | 0.86 | 0.18 | False | | |
|
  • [Substring_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 966.01 ns | 836.67 ns | 0.87 | 0.16 | False | | |
|
  • [Remove_Int - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1129.01 ns | 989.47 ns | 0.88 | 0.18 | False | | |
|
  • [Substring_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.16 μs | 1.02 μs | 0.89 | 0.18 | False | | |
|
  • [Substring_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.16 μs | 1.03 μs | 0.89 | 0.20 | False | | |
|
  • [Split - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 48.06 μs | 44.00 μs | 0.92 | 0.17 | False | | |
|
  • [Split - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 41.52 μs | 38.06 μs | 0.92 | 0.20 | False | | |
|
  • [TrimEnd_CharArr - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.60 μs | 1.48 μs | 0.92 | 0.20 | False | | |
|
  • [Remove_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.36 μs | 1.26 μs | 0.93 | 0.15 | False | | |
|
  • [TrimStart_CharArr - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.55 μs | 1.45 μs | 0.93 | 0.26 | 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_String*'
```

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### 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_Int(s: "dzsdzsDDZSDZSDZSddsz", i: 7)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### 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.Substring_IntInt(s: "dzsdzsDDZSDZSDZSddsz", i1: 0, i2: 8)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Split(s: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", arr: [' '], options: RemoveEmptyEntries)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Split(s: "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z", arr: [' '], options: None)

#### 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: 0, i2: 8)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### 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 System.Tests.Perf_Enum benchmark reports and the benchmark source in src/benchmarks/micro/libraries/System.Runtime/Perf.Enum.cs, then compare the listed baseline and test commits. Determine whether the reported improvements represent an actionable issue; done means the result is triaged with a clear next step or no change required.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, linux, ubuntu, wasm
Domain
performance, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.