dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 84 Regressions on 8/26/2026 4:02:35 AM +00:00

Open
#78,763 4 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro os-linux perf-regression 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 | [8baacb006f5615ebd705bdf9de98ca5df7bf1ba1](https://github.com/dotnet/runtime/commit/8baacb006f5615ebd705bdf9de98ca5df7bf1ba1)
Compare | [08df03ba6493589f3816e193847b50f105bf4c7a](https://github.com/dotnet/runtime/commit/08df03ba6493589f3816e193847b50f105bf4c7a)
Diff | [Diff](https://github.com/dotnet/runtime/compare/8baacb006f5615ebd705bdf9de98ca5df7bf1ba1...08df03ba6493589f3816e193847b50f105bf4c7a)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

### Regressions in System.Tests.Perf_Single

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

  • [Parse - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.99 μs | 14.48 μs | 1.32 | 0.23 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.33 μs | 27.51 μs | 1.23 | 0.18 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.60 μs | 28.45 μs | 1.21 | 0.18 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.97 μs | 12.77 μs | 1.16 | 0.19 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 24.97 μs | 28.65 μs | 1.15 | 0.20 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.79 μs | 26.14 μs | 1.15 | 0.24 | False | | |
|
  • [Parse - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.43 μs | 9.62 μs | 1.14 | 0.17 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.20 μs | 25.30 μs | 1.14 | 0.23 | False | | |
|
  • [Parse - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.59 μs | 13.14 μs | 1.13 | 0.29 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 19.30 μs | 21.85 μs | 1.13 | 0.16 | False | | |
|
  • [ToString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.86 μs | 24.45 μs | 1.12 | 0.20 | False | | |
|
  • [ToStringWithCultureInfo - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.77 μs | 24.27 μs | 1.11 | 0.21 | False | | |
|
  • [ToStringWithCultureInfo - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.13 μs | 24.60 μs | 1.11 | 0.22 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 18.82 μs | 20.91 μs | 1.11 | 0.24 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.58 μs | 9.47 μs | 1.10 | 0.19 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.18 μs | 25.26 μs | 1.09 | 0.20 | False | | |
|
  • [ToString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 15.40 μs | 16.62 μs | 1.08 | 0.18 | False | | |
|
  • [ToStringWithCultureInfo - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 15.39 μs | 16.61 μs | 1.08 | 0.19 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 15.84 μs | 16.72 μs | 1.06 | 0.18 | False | | |

![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_Single*'
```

### System.Tests.Perf_Single.Parse(value: "3.4028235E+38")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: 3.4028235E+38, format: "G")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: -3.4028235E+38, format: "G17")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.TryParse(value: "3.4028235E+38")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: 3.4028235E+38, format: "G17")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: -3.4028235E+38, format: "R")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.Parse(value: "12345")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: 3.4028235E+38, format: "R")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.Parse(value: "-3.4028235E+38")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: 12345, format: "E")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToString(value: 3.4028235E+38)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithCultureInfo(value: 3.4028235E+38, culture: zh)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithCultureInfo(value: -3.4028235E+38, culture: zh)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: 3.4028235E+38, format: "E")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.TryParse(value: "12345")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: -3.4028235E+38, format: "G")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToString(value: 12345)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithCultureInfo(value: 12345, culture: zh)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Single.ToStringWithFormat(value: 12345, format: "R")

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

### Regressions in System.Text.Json.Tests.Perf_Basic

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

  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 409.66 ms | 649.07 ms | 1.58 | 0.19 | False | | |
|
  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 396.53 ms | 613.70 ms | 1.55 | 0.16 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 411.60 ms | 622.28 ms | 1.51 | 0.13 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 483.89 ms | 720.86 ms | 1.49 | 0.23 | False | | |
|
  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 492.90 ms | 717.77 ms | 1.46 | 0.19 | False | | |
|
  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 483.24 ms | 695.28 ms | 1.44 | 0.21 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 499.67 ms | 701.17 ms | 1.40 | 0.17 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 434.41 ms | 595.05 ms | 1.37 | 0.18 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 153.36 μs | 193.58 μs | 1.26 | 0.18 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 121.74 μs | 147.20 μs | 1.21 | 0.13 | False | | |
|
  • [WriteBasicUtf16 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 143.95 μs | 172.79 μs | 1.20 | 0.16 | False | | |
|
  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 160.43 μs | 189.52 μs | 1.18 | 0.19 | False | | |
|
  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 132.10 μs | 155.86 μs | 1.18 | 0.18 | False | | |
|
  • [WriteBasicUtf8 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 168.60 μs | 193.26 μs | 1.15 | 0.15 | 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.Text.Json.Tests.Perf_Basic*'
```

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: False, SkipValidation: False, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: False, SkipValidation: True, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: False, SkipValidation: False, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: True, SkipValidation: False, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: True, SkipValidation: False, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: True, SkipValidation: True, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: True, SkipValidation: True, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: False, SkipValidation: True, DataSize: 100000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: True, SkipValidation: False, DataSize: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: False, SkipValidation: True, DataSize: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf16(Formatted: True, SkipValidation: True, DataSize: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: True, SkipValidation: True, DataSize: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: False, SkipValidation: True, DataSize: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Basic.WriteBasicUtf8(Formatted: True, SkipValidation: False, DataSize: 10)

#### 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 benchmark source in src/benchmarks/micro/libraries/System.Runtime/Perf.Single.cs, especially lines 63-77, and review the baseline and compare commits linked in the report. Reproduce the listed System.Tests.Perf_Single regressions under the wasm microbenchmark configuration; done means identifying and resolving the reported performance regression.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.