dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 281 Regressions on 3/16/2026 11:49:53 PM +00:00

Open
#70,507 22 comments 0 reactions 1 assignee Claimed by @EgorBo View on GitHub
arch-wasm arch-x64 branch-refs/heads/main kind-micro os-linux oversized-issue perf-regression runtime-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 | [2c7ee1937a8bd2f17a8f54d3b54bcaa0956f37f2](https://github.com/dotnet/runtime/commit/2c7ee1937a8bd2f17a8f54d3b54bcaa0956f37f2)
Compare | [fc529276b042443bd335adc6b5a26526e7ac9905](https://github.com/dotnet/runtime/commit/fc529276b042443bd335adc6b5a26526e7ac9905)
Diff | [Diff](https://github.com/dotnet/runtime/compare/2c7ee1937a8bd2f17a8f54d3b54bcaa0956f37f2...fc529276b042443bd335adc6b5a26526e7ac9905)
Configs | CompilationMode:wasm, RunKind:micro, RuntimeType:coreclr

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

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

  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.59 secs | 2.37 secs | 1.49 | 0.17 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.66 secs | 2.64 secs | 1.59 | 0.14 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.23 secs | 2.29 secs | 1.87 | 0.28 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.95 secs | 2.42 secs | 1.24 | 0.20 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.17 secs | 2.23 secs | 1.90 | 0.18 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.83 secs | 2.75 secs | 1.50 | 0.29 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.29 secs | 2.24 secs | 1.74 | 0.17 | False | | |
|
  • [WriteStringsUtf8 - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.25 secs | 2.31 secs | 1.84 | 0.33 | False | | |

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

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: False, SkipValidation: True, Escaped: OneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: True, SkipValidation: False, Escaped: OneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: True, SkipValidation: False, Escaped: NoneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: True, SkipValidation: True, Escaped: OneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: False, SkipValidation: True, Escaped: NoneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: False, SkipValidation: False, Escaped: OneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: False, SkipValidation: False, Escaped: NoneEscaped)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Strings.WriteStringsUtf8(Formatted: True, SkipValidation: True, Escaped: NoneEscaped)

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

### Regressions in MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>

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

  • [SystemTextJson_Reflection_ - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 41.58 ms | 61.06 ms | 1.47 | 0.27 | False | | |
|
  • [SystemTextJson_SourceGen_ - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 41.41 ms | 59.81 ms | 1.44 | 0.33 | False | | |

![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 'MicroBenchmarks.Serializers.Json_FromString*'
```

### MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>.SystemTextJson_Reflection_

#### ETL Files

#### Histogram

#### JIT Disasms

### MicroBenchmarks.Serializers.Json_FromString<MyEventsListerViewModel>.SystemTextJson_SourceGen_

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

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

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

  • [ReadSingleSegmentSequenceByN - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.05 ms | 14.84 ms | 1.48 | 0.31 | False | | |
|
  • [ReadSingleSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.02 ms | 1.63 ms | 1.60 | 0.33 | False | | |
|
  • [ReadMultiSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.07 ms | 15.14 ms | 1.50 | 0.37 | False | | |
|
  • [ReadMultiSegmentSequenceUsingSpan - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 99.08 ms | 158.33 ms | 1.60 | 0.34 | False | | |
|
  • [ReadMultiSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 100.65 ms | 154.66 ms | 1.54 | 0.30 | False | | |
|
  • [ReadSingleSegmentSequenceByN - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.86 ms | 15.64 ms | 1.59 | 0.18 | False | | |
|
  • [ReadMultiSegmentSequenceUsingSpan - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.92 ms | 15.86 ms | 1.60 | 0.18 | False | | |
|
  • [ReadSingleSegmentSequenceByN - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 97.01 ms | 175.03 ms | 1.80 | 0.34 | False | | |
|
  • [ReadSingleSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 97.72 ms | 156.05 ms | 1.60 | 0.25 | False | | |
|
  • [ReadSingleSegmentSequenceByN - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.02 ms | 1.62 ms | 1.59 | 0.24 | False | | |
|
  • [ReadSingleSegmentSequenceByN - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.01 ms | 1.62 ms | 1.61 | 0.24 | False | | |
|
  • [ReadMultiSegmentSequenceUsingSpan - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.06 ms | 1.60 ms | 1.51 | 0.45 | False | | |
|
  • [ReadMultiSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.07 ms | 1.62 ms | 1.51 | 0.27 | False | | |
|
  • [ReadMultiSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.93 ms | 15.83 ms | 1.59 | 0.34 | False | | |
|
  • [ReadSingleSegmentSequenceByN - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 98.53 ms | 157.35 ms | 1.60 | 0.18 | False | | |
|
  • [ReadMultiSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 979.93 ΞΌs | 1.62 ms | 1.65 | 0.24 | False | | |
|
  • [ReadMultiSegmentSequenceUsingSpan - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.84 ms | 15.46 ms | 1.57 | 0.47 | False | | |
|
  • [ReadMultiSegmentSequenceUsingSpan - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 994.08 ΞΌs | 1.89 ms | 1.90 | 0.35 | False | | |
|
  • [ReadSingleSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.50 ms | 15.41 ms | 1.62 | 0.31 | False | | |
|
  • [ReadMultiSegmentSequence - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 105.03 ms | 162.50 ms | 1.55 | 0.18 | False | | |
|
  • [ReadMultiSegmentSequenceUsingSpan - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 102.90 ms | 165.01 ms | 1.60 | 0.29 | False | | |

![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.Text.Json.Tests.Perf_Segment*'
```

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 8192, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequence(TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 4096, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequenceUsingSpan(segmentSize: 8192, TestCase: Json400KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 4096, TestCase: Json400KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 4096, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequenceUsingSpan(segmentSize: 4096, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 8192, TestCase: Json400KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequence(TestCase: Json400KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 4096, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 8192, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequenceUsingSpan(segmentSize: 4096, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 4096, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 8192, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequenceByN(numberOfBytes: 4096, TestCase: Json400KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 8192, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequenceUsingSpan(segmentSize: 8192, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequenceUsingSpan(segmentSize: 8192, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadSingleSegmentSequence(TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequence(segmentSize: 8192, TestCase: Json400KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Segment.ReadMultiSegmentSequenceUsingSpan(segmentSize: 4096, TestCase: Json400KB)

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