dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 13 Improvements on 8/3/2026 7:26:34 AM +00:00

Open
#77,733 1 comment 0 reactions 0 assignees View on GitHub
aot-true arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro os-linux perf-improvement runkind-micro untriaged wasm-aot
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 | [79efd2de59f086171fd811d7375241616c43b890](https://github.com/dotnet/runtime/commit/79efd2de59f086171fd811d7375241616c43b890)
Compare | [c4fc2a5afc5644e10973054b1aa63c27a1584404](https://github.com/dotnet/runtime/commit/c4fc2a5afc5644e10973054b1aa63c27a1584404)
Diff | [Diff](https://github.com/dotnet/runtime/compare/79efd2de59f086171fd811d7375241616c43b890...c4fc2a5afc5644e10973054b1aa63c27a1584404)
Configs | AOT:true, CompilationMode:wasm, RunKind:micro

### Improvements in System.Linq.Tests.Perf_Enumerable

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

  • [WhereSingle_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 12.46 μs | 11.13 μs | 0.89 | 0.13 | False | | |
|
  • [WhereLast_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.25 μs | 10.06 μs | 0.89 | 0.15 | False | | |
|
  • [WhereLast_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.90 μs | 10.77 μs | 0.91 | 0.17 | False | | |
|
  • [WhereAny_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 12.17 μs | 11.03 μs | 0.91 | 0.12 | False | | |
|
  • [WhereSingle_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 12.41 μs | 11.28 μs | 0.91 | 0.11 | False | | |
|
  • [WhereAny_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.73 μs | 10.74 μs | 0.92 | 0.11 | False | | |
|
  • [Where - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 19.25 μs | 17.69 μs | 0.92 | 0.12 | False | | |
|
  • [WhereSingleOrDefault_LastElementMatches - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.91 μs | 11.11 μs | 0.93 | 0.14 | False | | |
|
  • [OrderByDescending - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 79.39 μs | 75.26 μs | 0.95 | 0.10 | False | | |

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

### System.Linq.Tests.Perf_Enumerable.WhereSingle_LastElementMatches(input: Array)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.WhereLast_LastElementMatches(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.WhereLast_LastElementMatches(input: Array)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.WhereAny_LastElementMatches(input: List)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.WhereSingle_LastElementMatches(input: List)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.WhereAny_LastElementMatches(input: Array)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.Where(input: List)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.WhereSingleOrDefault_LastElementMatches(input: IEnumerable)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Linq.Tests.Perf_Enumerable.OrderByDescending(input: IEnumerable)

#### 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 | [79efd2de59f086171fd811d7375241616c43b890](https://github.com/dotnet/runtime/commit/79efd2de59f086171fd811d7375241616c43b890)
Compare | [c4fc2a5afc5644e10973054b1aa63c27a1584404](https://github.com/dotnet/runtime/commit/c4fc2a5afc5644e10973054b1aa63c27a1584404)
Diff | [Diff](https://github.com/dotnet/runtime/compare/79efd2de59f086171fd811d7375241616c43b890...c4fc2a5afc5644e10973054b1aa63c27a1584404)
Configs | AOT:true, CompilationMode:wasm, RunKind:micro

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

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

  • [WriteBooleans - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 3.16 ms | 2.31 ms | 0.73 | 0.28 | False | | |
|
  • [WriteBooleans - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.83 ms | 2.13 ms | 0.75 | 0.23 | 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 'System.Text.Json.Tests.Perf_Booleans*'
```

### System.Text.Json.Tests.Perf_Booleans.WriteBooleans(Formatted: False, SkipValidation: False)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Text.Json.Tests.Perf_Booleans.WriteBooleans(Formatted: False, SkipValidation: True)

#### 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 | [79efd2de59f086171fd811d7375241616c43b890](https://github.com/dotnet/runtime/commit/79efd2de59f086171fd811d7375241616c43b890)
Compare | [c4fc2a5afc5644e10973054b1aa63c27a1584404](https://github.com/dotnet/runtime/commit/c4fc2a5afc5644e10973054b1aa63c27a1584404)
Diff | [Diff](https://github.com/dotnet/runtime/compare/79efd2de59f086171fd811d7375241616c43b890...c4fc2a5afc5644e10973054b1aa63c27a1584404)
Configs | AOT:true, CompilationMode:wasm, RunKind:micro

### Improvements in System.IO.Tests.MemoryStreamChunkedTests

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

  • [WriteSpan - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 1.08 ms | 1.02 ms | 0.94 | 0.06 | 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.IO.Tests.MemoryStreamChunkedTests*'
```

### System.IO.Tests.MemoryStreamChunkedTests.WriteSpan(ChunkSize: 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 | ubuntu 22.04
Queue | ViperUbuntu
Baseline | [79efd2de59f086171fd811d7375241616c43b890](https://github.com/dotnet/runtime/commit/79efd2de59f086171fd811d7375241616c43b890)
Compare | [c4fc2a5afc5644e10973054b1aa63c27a1584404](https://github.com/dotnet/runtime/commit/c4fc2a5afc5644e10973054b1aa63c27a1584404)
Diff | [Diff](https://github.com/dotnet/runtime/compare/79efd2de59f086171fd811d7375241616c43b890...c4fc2a5afc5644e10973054b1aa63c27a1584404)
Configs | AOT:true, CompilationMode:wasm, RunKind:micro

### Improvements in System.Collections.IterateForEach<String>

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

  • [SortedDictionary - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 165.05 μs | 155.62 μs | 0.94 | 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.Collections.IterateForEach*'
```

### System.Collections.IterateForEach<String>.SortedDictionary(Size: 512)

#### 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 generated run information and the benchmark links for src/benchmarks/micro/libraries/System.Linq/Perf.Enumerable.cs, then compare the listed baseline and test commits. Re-run the affected AOT WebAssembly microbenchmarks to confirm the improvements and determine whether the report identifies an actionable runtime change; the issue does not name a target implementation file or a concrete fix.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.