dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 25 Improvements on 5/7/2026 7:03:47 PM +00:00

Open
#72,773 1 comment 0 reactions 0 assignees View on GitHub
arch-x64 branch-refs/heads/main compilationmode-tiered kind-micro os-linux perf-improvement runkind-micro 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 | [cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b](https://github.com/dotnet/runtime/commit/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b)
Compare | [10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3](https://github.com/dotnet/runtime/commit/10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b...10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Text.Json.Tests.Perf_Reader

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

  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 56.39 ns | 37.77 ns | 0.67 | 0.22 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 64.42 ns | 45.71 ns | 0.71 | 0.14 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 60.22 ns | 45.33 ns | 0.75 | 0.16 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 582.88 ns | 441.63 ns | 0.76 | 0.11 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 551.15 ns | 431.44 ns | 0.78 | 0.08 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.79 μs | 3.02 μs | 0.80 | 0.07 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.73 μs | 1.41 μs | 0.82 | 0.12 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 307.25 ns | 262.46 ns | 0.85 | 0.08 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 826.12 ns | 707.90 ns | 0.86 | 0.07 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.62 μs | 19.89 μs | 0.88 | 0.04 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 928.29 ns | 818.15 ns | 0.88 | 0.02 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 908.46 ns | 802.39 ns | 0.88 | 0.03 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.25 μs | 2.00 μs | 0.89 | 0.04 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.69 μs | 19.29 μs | 0.89 | 0.03 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 5.79 μs | 5.19 μs | 0.90 | 0.07 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 396.13 ns | 361.20 ns | 0.91 | 0.05 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.14 μs | 1.95 μs | 0.91 | 0.05 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.28 μs | 3.00 μs | 0.92 | 0.04 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 314.21 ns | 289.25 ns | 0.92 | 0.06 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.51 μs | 1.41 μs | 0.94 | 0.04 | False | | |

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

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: HelloWorld)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: HelloWorld)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: HelloWorld)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: LotsOfStrings)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: LotsOfStrings)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: BroadTree)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: DeepTree)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: Json400B)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: LotsOfStrings)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: LotsOfNumbers)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: LotsOfNumbers)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: BroadTree)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: Json400B)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: Json4KB)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: BroadTree)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: Json400B)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Reader.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: DeepTree)

#### 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 | [cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b](https://github.com/dotnet/runtime/commit/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b)
Compare | [10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3](https://github.com/dotnet/runtime/commit/10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b...10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Text.Json.Tests.Utf8JsonReaderCommentsTests

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

  • [Utf8JsonReaderCommentParsing - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 475.63 ns | 303.27 ns | 0.64 | 0.14 | False | | |
|
  • [Utf8JsonReaderCommentParsing - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 9.26 μs | 8.17 μs | 0.88 | 0.03 | False | | |
|
  • [Utf8JsonReaderCommentParsing - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 65.66 ns | 61.94 ns | 0.94 | 0.42 | False | | |

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

### System.Text.Json.Tests.Utf8JsonReaderCommentsTests.Utf8JsonReaderCommentParsing(CommentHandling: Allow, SegmentSize: 100, TestCase: LongSingleLine)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Utf8JsonReaderCommentsTests.Utf8JsonReaderCommentParsing(CommentHandling: Allow, SegmentSize: 100, TestCase: LongMultiLine)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Utf8JsonReaderCommentsTests.Utf8JsonReaderCommentParsing(CommentHandling: Skip, SegmentSize: 100, TestCase: ShortMultiLine)

#### 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 | [5566dcc3aef9192af567a2c8cda8cbc9758cfb62](https://github.com/dotnet/runtime/commit/5566dcc3aef9192af567a2c8cda8cbc9758cfb62)
Compare | [10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3](https://github.com/dotnet/runtime/commit/10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/5566dcc3aef9192af567a2c8cda8cbc9758cfb62...10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Text.Json.Tests.Perf_Get

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

  • [GetString - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.01 μs | 1.86 μs | 0.92 | 0.08 | False | | |

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

### System.Text.Json.Tests.Perf_Get.GetString

#### 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 | [cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b](https://github.com/dotnet/runtime/commit/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b)
Compare | [10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3](https://github.com/dotnet/runtime/commit/10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b...10c9a33d6d86ad5ac2169e1017af7cb235ddd8b3)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in PerfLabTests.GetMember

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

  • [GetMethod1 - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 34.52 μs | 16.36 μs | 0.47 | 0.14 | False | | |

![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 'PerfLabTests.GetMember*'
```

### PerfLabTests.GetMember.GetMethod1

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