dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 95 Improvements on 6/18/2026 7:52:57 AM +00:00

Open
#75,417 5 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 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 | [d72d2fcf29301c5f9fe2c7188c90df93b0730989](https://github.com/dotnet/runtime/commit/d72d2fcf29301c5f9fe2c7188c90df93b0730989)
Compare | [a17debec450d73f9d84e68ca44f63b217f5db49f](https://github.com/dotnet/runtime/commit/a17debec450d73f9d84e68ca44f63b217f5db49f)
Diff | [Diff](https://github.com/dotnet/runtime/compare/d72d2fcf29301c5f9fe2c7188c90df93b0730989...a17debec450d73f9d84e68ca44f63b217f5db49f)
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
-- | -- | -- | -- | -- | -- | -- | -- | --
|

  • [ToLower - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1303.29 ns | 866.40 ns | 0.66 | 0.26 | False | | |
|
  • [ToUpper - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1306.97 ns | 934.80 ns | 0.72 | 0.23 | False | | |
|
  • [ToUpper - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 5.19 μs | 3.76 μs | 0.72 | 0.23 | False | | |
|
  • [Insert - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.51 μs | 2.00 μs | 0.80 | 0.17 | False | | |
|
  • [IndexOfAny - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.74 μs | 7.83 μs | 0.80 | 0.20 | False | | |
|
  • [Replace_Char - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.60 μs | 2.14 μs | 0.82 | 0.25 | False | | |
|
  • [ToUpper - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.65 μs | 3.83 μs | 0.82 | 0.21 | False | | |
|
  • [Insert - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.22 μs | 1.84 μs | 0.83 | 0.22 | False | | |
|
  • [Interpolation_MultipleArgs - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 16.45 μs | 13.64 μs | 0.83 | 0.22 | False | | |
|
  • [Replace_Char - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 294.20 μs | 244.85 μs | 0.83 | 0.22 | False | | |
|
  • [Join_Array - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.06 μs | 8.38 μs | 0.83 | 0.23 | False | | |
|
  • [IndexerCheckPathLength - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.58 μs | 7.98 μs | 0.83 | 0.39 | False | | |
|
  • [TrimStart - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.31 μs | 1.95 μs | 0.84 | 0.21 | False | | |
|
  • [Concat_str_str_str - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.84 μs | 3.25 μs | 0.85 | 0.27 | False | | |
|
  • [Replace_String - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.06 μs | 11.09 μs | 0.85 | 0.25 | False | | |
|
  • [Remove_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.81 μs | 1.54 μs | 0.85 | 0.25 | False | | |
|
  • [Trim - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.19 μs | 3.60 μs | 0.86 | 0.19 | False | | |
|
  • [ToLower - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.48 μs | 3.85 μs | 0.86 | 0.21 | False | | |
|
  • [Replace_Char - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 27.84 μs | 24.15 μs | 0.87 | 0.24 | False | | |
|
  • [ToLowerInvariant - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.64 μs | 3.20 μs | 0.88 | 0.20 | False | | |
|
  • [ToUpperInvariant - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.69 μs | 3.26 μs | 0.89 | 0.22 | False | | |
|
  • [ToLower - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 4.60 μs | 4.10 μs | 0.89 | 0.16 | False | | |
|
  • [Remove_IntInt - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.69 μs | 1.53 μs | 0.90 | 0.20 | False | | |
|
  • [Replace_String - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 19.58 μs | 18.59 μs | 0.95 | 0.24 | 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]()
[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.ToLower(s: "test")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToUpper(s: "TEST")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToUpper(s: "test")

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.IndexOfAny

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Replace_Char(text: "Hello", oldChar: 'l', newChar: '!')

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToUpper(s: "TeSt")

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Interpolation_MultipleArgs(c: '1', s: "Foo")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Replace_Char(text: "yfesgj0sg1ijslnjsb3uofdz3tbzf6ysgblu3at20nfab2wei1kxfbvsbpzwhanjczcqa2psra3aacxb67qnwbnfp2tok6v0a58lzfdql1fehvs91yzkt9xam7ahjbhvpd9edll13ab46i74ktwwgkgbi792e5gkuuzevo5qm8qt83edag7zovoe686gmtw730kms2i5xgji4xcp25287q68fvhwszd3mszht2uh7bchlgkj5qnq1x9m4lg7vwn8cq5l756akua6oyx9k71bmxbysnmhvxvlxde4k9maumfgxd8gxhxx4mwpph2ttyox9zilt3ylv1q9s4bopfuoa8qlrzodg2q67sh85wx4slcd6w7ufnendaxai633ove2ktbaxdt2sz6y6mo42473xd274gz833p6hj3mu77c4m4od9e5s8btxleh0efqnu9zj9rwtbk5758lio35b3q426j5fwwq1qyknfedrsmqyfw1m38mkkotdf7n0vr6p3erhy8dkzntr9fwjrslxjgrbegih0n6bpb5bfuy55bu65ce9kejcfifxwpcs05umrsb8kvd64q2iwugbbi7vd35g5ho0rff9rhombgzzaniyq7bbjbqr88jyw4ccgnoyl31of3a5thv0vg08gnrqzxas800hewtw8tnwgw5pav81ntdpdd62689x3iqpc317y82b3e2trbpdzieoxldaz009tz37gqmh4bdp1bv9lnl5s58udb11z0h7i2sdl5nbyhjyfzxwzezmp4qx0i3eyvsd3fg8sryq9jhlvkonnfcvb4snl4mcbimdzg49tzdhqjmfxfcq3p1st6b9x2xyevo17evpqp4yc4f2rm0f26ivr3t2f5m0boc44vituxaovcqy1jrkcs6im2kdu3jvcexx2k76egve63aon5a6nbxss4rcke90npmqp35qluf571ms160y2nhaqef835wah41qru8tauu362v0r8konl8", oldChar: 'b', newChar: '+')

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Join_Array

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.IndexerCheckPathLength

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.TrimStart(s: " Test")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Concat_str_str_str(size: 100)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Replace_String(text: "This is a very nice sentence. This is another very nice sentence.", oldValue: "a", newValue: "")

#### 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.Trim(s: " Te st ")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToLower(s: "TeSt")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.Replace_Char(text: "yfesgj0sg1ijslnjsb3uofdz3tbzf6ysgblu3at20nfab2wei1kxfbvsbpzwhanjczcqa2psra3aacxb67qnwbnfp2tok6v0a58l", oldChar: 'b', newChar: '+')

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToLowerInvariant(s: "TeSt")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToUpperInvariant(s: "TeSt")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_String.ToLower(s: "TEST")

#### 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.Replace_String(text: "This is a very nice sentence. This is another very nice sentence.", oldValue: "a", newValue: "b")

#### 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 src/benchmarks/micro/libraries/System.Runtime/Perf.String.cs at the linked benchmark lines, then inspect the linked ToLower, ToUpper, Insert, IndexOfAny, Replace_Char, and Interpolation_MultipleArgs reports. Compare the baseline and test results to determine whether the report identifies actionable work; the issue does not define a specific change or completion condition.

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
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.