dotnet / dotnet/perf-autofiling-issues

[Perf] Windows/x64: 47 Improvements on 5/7/2026 3:57:15 PM +00:00

Open
#72,777 2 comments 0 reactions 0 assignees View on GitHub
arch-x64 branch-refs/heads/main compilationmode-tiered kind-micro os-windows 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 | Windows 10.0.22631
Queue | ViperWindows
Baseline | [cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b](https://github.com/dotnet/runtime/commit/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b)
Compare | [c3caf4d3163c429efbdefe7756a71702e9e6c982](https://github.com/dotnet/runtime/commit/c3caf4d3163c429efbdefe7756a71702e9e6c982)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b...c3caf4d3163c429efbdefe7756a71702e9e6c982)
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]()
| 53.26 ns | 36.26 ns | 0.68 | 0.11 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 60.55 ns | 41.23 ns | 0.68 | 0.09 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 60.36 ns | 42.08 ns | 0.70 | 0.07 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 609.42 ns | 447.70 ns | 0.73 | 0.03 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 599.80 ns | 441.18 ns | 0.74 | 0.03 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.97 μs | 3.06 μs | 0.77 | 0.04 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1036.48 ns | 807.55 ns | 0.78 | 0.03 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.86 μs | 1.53 μs | 0.82 | 0.03 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 885.31 ns | 737.26 ns | 0.83 | 0.02 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.60 μs | 3.04 μs | 0.85 | 0.02 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.36 μs | 1.18 μs | 0.87 | 0.10 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 408.94 ns | 356.32 ns | 0.87 | 0.02 | False | | |
|
  • [ReadSingleSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.10 μs | 20.15 μs | 0.87 | 0.03 | False | | |
|
  • [ReadMultiSpanSequenceEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 25.89 μs | 22.77 μs | 0.88 | 0.03 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.13 μs | 19.52 μs | 0.88 | 0.02 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.68 μs | 1.49 μs | 0.88 | 0.06 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 298.79 ns | 264.95 ns | 0.89 | 0.05 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.23 μs | 2.00 μs | 0.89 | 0.02 | False | | |

![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
py .\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.ReadSpanEmptyLoop(IsDataCompact: False, 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.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.ReadSpanEmptyLoop(IsDataCompact: True, TestCase: LotsOfNumbers)

#### 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: False, TestCase: LotsOfStrings)

#### 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.ReadSpanEmptyLoop(IsDataCompact: False, TestCase: LotsOfNumbers)

#### 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.ReadSingleSpanSequenceEmptyLoop(IsDataCompact: True, TestCase: Json40KB)

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### 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: 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: True, TestCase: Json4KB)

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

### Improvements in System.Buffers.Text.Tests.Base64Tests

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

  • [Base64EncodeDestinationTooSmall - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 35.04 ns | 26.30 ns | 0.75 | 0.06 | False | | |
|
  • [Base64Encode - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 29.59 ns | 24.32 ns | 0.82 | 0.09 | False | | |
|
  • [Base64IsValid - Duration of single invocation]()
  • [ADX - Test Multi Config Graph]()
| 26.56 ns | 23.31 ns | 0.88 | 0.04 | 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Buffers.Text.Tests.Base64Tests*'
```

### System.Buffers.Text.Tests.Base64Tests.Base64EncodeDestinationTooSmall(NumberOfBytes: 1000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Text.Tests.Base64Tests.Base64Encode(NumberOfBytes: 1000)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Buffers.Text.Tests.Base64Tests.Base64IsValid(NumberOfBytes: 1000)

#### 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 | Windows 10.0.22631
Queue | ViperWindows
Baseline | [06ca6751830996c1c815bfdd73a3fb4c8b53d77f](https://github.com/dotnet/runtime/commit/06ca6751830996c1c815bfdd73a3fb4c8b53d77f)
Compare | [c3caf4d3163c429efbdefe7756a71702e9e6c982](https://github.com/dotnet/runtime/commit/c3caf4d3163c429efbdefe7756a71702e9e6c982)
Diff | [Diff](https://github.com/dotnet/runtime/compare/06ca6751830996c1c815bfdd73a3fb4c8b53d77f...c3caf4d3163c429efbdefe7756a71702e9e6c982)
Configs | CompilationMode:tiered, RunKind:micro

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

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]()
| 1119.13 ns | 896.11 ns | 0.80 | 0.02 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.55 μs | 8.78 μs | 0.83 | 0.02 | False | | |
|
  • [ReadSpanEmptyLoop - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 42.51 ns | 37.49 ns | 0.88 | 0.04 | 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Tests.Perf_Depth*'
```

### System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 65)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Depth.ReadSpanEmptyLoop(Depth: 1)

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

### Improvements in System.Net.Primitives.Tests.CredentialCacheTests

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

  • [GetCredential_Uri - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 420.07 ns | 222.10 ns | 0.53 | 0.13 | False | | |
|
  • [GetCredential_Uri - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 366.14 ns | 209.02 ns | 0.57 | 0.15 | 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Net.Primitives.Tests.CredentialCacheTests*'
```

### System.Net.Primitives.Tests.CredentialCacheTests.GetCredential_Uri(uriString: "http://name5", uriCount: 10)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Net.Primitives.Tests.CredentialCacheTests.GetCredential_Uri(uriString: "http://notfound", uriCount: 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)

---

### Run Information

Name | Value
-- | --
Architecture | x64
OS | Windows 10.0.22631
Queue | ViperWindows
Baseline | [cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b](https://github.com/dotnet/runtime/commit/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b)
Compare | [c3caf4d3163c429efbdefe7756a71702e9e6c982](https://github.com/dotnet/runtime/commit/c3caf4d3163c429efbdefe7756a71702e9e6c982)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b...c3caf4d3163c429efbdefe7756a71702e9e6c982)
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.26 μs | 2.03 μs | 0.90 | 0.02 | False | | |
|
  • [GetDecimal - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.49 μs | 3.19 μs | 0.91 | 0.02 | 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
py .\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

### System.Text.Json.Tests.Perf_Get.GetDecimal

#### 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 | Windows 10.0.22631
Queue | ViperWindows
Baseline | [cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b](https://github.com/dotnet/runtime/commit/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b)
Compare | [c3caf4d3163c429efbdefe7756a71702e9e6c982](https://github.com/dotnet/runtime/commit/c3caf4d3163c429efbdefe7756a71702e9e6c982)
Diff | [Diff](https://github.com/dotnet/runtime/compare/cdbf0c2ba8a84fdc9d83f019baa2103a0afd580b...c3caf4d3163c429efbdefe7756a71702e9e6c982)
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]()
| 554.58 ns | 317.84 ns | 0.57 | 0.10 | False | | |
|
  • [Utf8JsonReaderCommentParsing - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 10.12 μs | 8.48 μs | 0.84 | 0.00 | 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
py .\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

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