dotnet / dotnet/perf-autofiling-issues

[Perf] Windows/x64: 27 Improvements on 8/25/2026 10:44:15 PM +00:00

Open
#78,701 4 comments 0 reactions 0 assignees View on GitHub
arch-x64 branch-refs/heads/main compilationmode-tiered kind-micro Look Again 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 | [8baacb006f5615ebd705bdf9de98ca5df7bf1ba1](https://github.com/dotnet/runtime/commit/8baacb006f5615ebd705bdf9de98ca5df7bf1ba1)
Compare | [9f18a550aaa91ecd032ac024b67e03559df9e766](https://github.com/dotnet/runtime/commit/9f18a550aaa91ecd032ac024b67e03559df9e766)
Diff | [Diff](https://github.com/dotnet/runtime/compare/8baacb006f5615ebd705bdf9de98ca5df7bf1ba1...9f18a550aaa91ecd032ac024b67e03559df9e766)
Configs | CompilationMode:tiered, RunKind:micro

### Improvements in System.Tests.Perf_Single

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

  • [ToStringWithCultureInfo - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 76.95 ns | 68.79 ns | 0.89 | 0.02 | False | | |
|
  • [ToString - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 76.93 ns | 69.20 ns | 0.90 | 0.02 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 55.82 ns | 50.26 ns | 0.90 | 0.04 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 80.36 ns | 72.68 ns | 0.90 | 0.02 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 82.82 ns | 75.20 ns | 0.91 | 0.02 | False | | |
|
  • [Parse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 54.73 ns | 49.86 ns | 0.91 | 0.04 | False | | |
|
  • [Parse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 54.35 ns | 49.82 ns | 0.92 | 0.05 | False | | |
|
  • [ToStringWithCultureInfo - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 79.46 ns | 73.06 ns | 0.92 | 0.02 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 77.15 ns | 70.99 ns | 0.92 | 0.01 | False | | |
|
  • [Parse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 39.95 ns | 36.95 ns | 0.92 | 0.08 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 79.23 ns | 73.73 ns | 0.93 | 0.03 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 94.91 ns | 88.85 ns | 0.94 | 0.01 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 39.87 ns | 37.41 ns | 0.94 | 0.06 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 79.47 ns | 74.79 ns | 0.94 | 0.09 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 93.40 ns | 88.09 ns | 0.94 | 0.03 | False | | |

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

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### 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: "G")

#### 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.Parse(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.ToStringWithFormat(value: 3.4028235E+38, format: "G")

#### 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.ToStringWithFormat(value: -3.4028235E+38, format: "G17")

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

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

### Improvements in System.Tests.Perf_Double

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]()
| 43.45 ns | 36.42 ns | 0.84 | 0.05 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 40.67 ns | 35.36 ns | 0.87 | 0.07 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 80.37 ns | 73.85 ns | 0.92 | 0.11 | False | | |
|
  • [Parse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 70.78 ns | 65.46 ns | 0.92 | 0.02 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 78.37 ns | 72.84 ns | 0.93 | 0.03 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 70.85 ns | 65.86 ns | 0.93 | 0.00 | False | | |
|
  • [ToString - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 110.31 ns | 103.36 ns | 0.94 | 0.02 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 148.34 ns | 139.23 ns | 0.94 | 0.04 | False | | |
|
  • [TryParse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 71.65 ns | 67.32 ns | 0.94 | 0.01 | False | | |
|
  • [ToStringWithFormat - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 79.21 ns | 74.76 ns | 0.94 | 0.04 | False | | |
|
  • [Parse - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 71.75 ns | 67.78 ns | 0.94 | 0.01 | False | | |

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

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

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

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.Parse(value: "1.7976931348623157e+308")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.ToStringWithFormat(value: 1.7976931348623157E+308, format: "E")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.TryParse(value: "1.7976931348623157e+308")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.ToString(value: 1.7976931348623157E+308)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.ToStringWithFormat(value: 12345, format: "F50")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.TryParse(value: "-1.7976931348623157e+308")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.ToStringWithFormat(value: -1.7976931348623157E+308, format: "E")

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Tests.Perf_Double.Parse(value: "-1.7976931348623157e+308")

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

### Improvements in System.Numerics.Tests.Perf_BigInteger

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

  • [ToStringD - Duration of single invocation]()
  • πŸ“ - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 656.30 ns | 572.07 ns | 0.87 | 0.01 | 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
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_BigInteger*'
```

### System.Numerics.Tests.Perf_BigInteger.ToStringD(numberString: 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890)

#### 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 linked benchmark source at src/benchmarks/micro/libraries/System.Runtime/Perf.Single.cs and review the Windows/x64 comparison report for the listed Single benchmarks. Compare the baseline and test results, then determine whether any follow-up is warranted; done means the performance findings are explained or the issue is triaged with a clear next step.

Written by the indexing model from the issue text.

Assessment

Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.