dotnet / dotnet/perf-autofiling-issues

[Perf] Linux/x64: 79 Improvements on 6/25/2026 3:50:04 PM +00:00

Open
#75,301 4 comments 0 reactions 0 assignees View on GitHub
arch-wasm arch-x64 branch-refs/heads/main compilationmode-wasm kind-micro Look Again os-linux perf-improvement runkind-micro 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 | [818cfd5edcda78ac3eb201af392fd301ab9ad46b](https://github.com/dotnet/runtime/commit/818cfd5edcda78ac3eb201af392fd301ab9ad46b)
Compare | [4e28c96c3bd32ce2811ef7128641e8926874020e](https://github.com/dotnet/runtime/commit/4e28c96c3bd32ce2811ef7128641e8926874020e)
Diff | [Diff](https://github.com/dotnet/runtime/compare/818cfd5edcda78ac3eb201af392fd301ab9ad46b...4e28c96c3bd32ce2811ef7128641e8926874020e)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.IO.Tests.Perf_FileStream

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

  • [GetLength - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2151.04 ns | 834.36 ns | 0.39 | 0.17 | False | | |
|
  • [GetLength - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2138.92 ns | 831.10 ns | 0.39 | 0.15 | False | | |
|
  • [SeekBackward - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2312.37 μs | 927.08 μs | 0.40 | 0.21 | False | | |
|
  • [SeekBackward - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2313.38 μs | 936.58 μs | 0.40 | 0.14 | False | | |
|
  • [LockUnlock - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.07 μs | 7.66 μs | 0.69 | 0.22 | False | | |
|
  • [LockUnlock - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.03 μs | 7.72 μs | 0.70 | 0.20 | False | | |
|
  • [OpenClose - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.36 μs | 5.25 μs | 0.71 | 0.21 | False | | |
|
  • [OpenClose - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 7.29 μs | 5.25 μs | 0.72 | 0.19 | False | | |
|
  • [Read - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.97 μs | 7.02 μs | 0.78 | 0.21 | False | | |
|
  • [Read - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.94 μs | 7.02 μs | 0.79 | 0.16 | False | | |

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

### System.IO.Tests.Perf_FileStream.GetLength(options: Read)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.GetLength(options: Write)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.SeekBackward(fileSize: 1024, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.SeekBackward(fileSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.LockUnlock(fileSize: 1024, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.LockUnlock(fileSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.OpenClose(fileSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.OpenClose(fileSize: 1024, options: Asynchronous)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.Read(fileSize: 1024, userBufferSize: 1024, options: None)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_FileStream.Read(fileSize: 1024, userBufferSize: 1024, options: Asynchronous)

#### 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 | [818cfd5edcda78ac3eb201af392fd301ab9ad46b](https://github.com/dotnet/runtime/commit/818cfd5edcda78ac3eb201af392fd301ab9ad46b)
Compare | [4e28c96c3bd32ce2811ef7128641e8926874020e](https://github.com/dotnet/runtime/commit/4e28c96c3bd32ce2811ef7128641e8926874020e)
Diff | [Diff](https://github.com/dotnet/runtime/compare/818cfd5edcda78ac3eb201af392fd301ab9ad46b...4e28c96c3bd32ce2811ef7128641e8926874020e)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.IO.Tests.Perf_File

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

  • [ReadAllBytes - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.81 μs | 7.67 μs | 0.56 | 0.15 | False | | |
|
  • [ReadAllBytes - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.27 μs | 7.52 μs | 0.57 | 0.20 | False | | |
|
  • [ReadAllBytes - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 14.57 μs | 8.90 μs | 0.61 | 0.18 | False | | |
|
  • [CopyToOverwrite - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.31 μs | 15.23 μs | 0.71 | 0.14 | False | | |
|
  • [CopyToOverwrite - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 21.85 μs | 15.66 μs | 0.72 | 0.21 | False | | |
|
  • [CopyTo - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 30.21 μs | 23.40 μs | 0.77 | 0.17 | False | | |
|
  • [AppendAllText - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 8.76 μs | 6.85 μs | 0.78 | 0.15 | False | | |
|
  • [CopyTo - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 30.85 μs | 24.20 μs | 0.78 | 0.21 | False | | |
|
  • [Exists - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 2.87 μs | 2.40 μs | 0.84 | 0.17 | 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.IO.Tests.Perf_File*'
```

### System.IO.Tests.Perf_File.ReadAllBytes(size: 4096)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.ReadAllBytes(size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.ReadAllBytes(size: 16384)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.CopyToOverwrite(size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.CopyToOverwrite(size: 4096)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.CopyTo(size: 512)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.AppendAllText(size: 100)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.CopyTo(size: 4096)

#### ETL Files

#### Histogram

#### JIT Disasms

### System.IO.Tests.Perf_File.Exists

#### 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 | [818cfd5edcda78ac3eb201af392fd301ab9ad46b](https://github.com/dotnet/runtime/commit/818cfd5edcda78ac3eb201af392fd301ab9ad46b)
Compare | [4e28c96c3bd32ce2811ef7128641e8926874020e](https://github.com/dotnet/runtime/commit/4e28c96c3bd32ce2811ef7128641e8926874020e)
Diff | [Diff](https://github.com/dotnet/runtime/compare/818cfd5edcda78ac3eb201af392fd301ab9ad46b...4e28c96c3bd32ce2811ef7128641e8926874020e)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>

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

  • [MultiplyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 23.24 ns | 13.06 ns | 0.56 | 0.41 | False | | |
|
  • [MultiplyOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.81 ns | 13.73 ns | 0.60 | 0.34 | False | | |
|
  • [ZeroBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 14.00 ns | 10.65 ns | 0.76 | 0.55 | False | | |
|
  • [AllBitsSetBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.25 ns | 10.12 ns | 0.76 | 0.48 | False | | |
|
  • [DotBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 56.48 ns | 45.52 ns | 0.81 | 0.22 | False | | |
|
  • [GreaterThanOrEqualBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 13.20 ns | 10.70 ns | 0.81 | 0.47 | False | | |
|
  • [AbsBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 14.86 ns | 12.40 ns | 0.83 | 0.51 | False | | |

![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.Runtime.Intrinsics.Tests.Perf_Vector128Of*'
```

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.MultiplyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.MultiplyOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.ZeroBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.AllBitsSetBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.DotBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.GreaterThanOrEqualBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.AbsBenchmark

#### 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 | [818cfd5edcda78ac3eb201af392fd301ab9ad46b](https://github.com/dotnet/runtime/commit/818cfd5edcda78ac3eb201af392fd301ab9ad46b)
Compare | [4e28c96c3bd32ce2811ef7128641e8926874020e](https://github.com/dotnet/runtime/commit/4e28c96c3bd32ce2811ef7128641e8926874020e)
Diff | [Diff](https://github.com/dotnet/runtime/compare/818cfd5edcda78ac3eb201af392fd301ab9ad46b...4e28c96c3bd32ce2811ef7128641e8926874020e)
Configs | CompilationMode:wasm, RunKind:micro

### Improvements in System.Numerics.Tests.Perf_VectorOf<SByte>

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

  • [MultiplyBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.65 ns | 13.10 ns | 0.58 | 0.37 | False | | |
|
  • [MultiplyOperatorBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 22.90 ns | 14.49 ns | 0.63 | 0.40 | False | | |
|
  • [ZeroBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 12.88 ns | 9.82 ns | 0.76 | 0.60 | False | | |
|
  • [MinBenchmark - Duration of single invocation]()
  • 📝 - [Benchmark Source]()
  • [ADX - Test Multi Config Graph]()
| 11.91 ns | 10.75 ns | 0.90 | 0.47 | False | | |

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

### System.Numerics.Tests.Perf_VectorOf<SByte>.MultiplyBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<SByte>.MultiplyOperatorBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<SByte>.ZeroBenchmark

#### ETL Files

#### Histogram

#### JIT Disasms

### System.Numerics.Tests.Perf_VectorOf<SByte>.MinBenchmark

#### 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 in src/benchmarks/micro/libraries/System.IO.FileSystem/Perf.FileStream.cs, especially lines 64-139, and review the linked performance reports for the listed FileStream results. The payload does not define a specific change or completion condition, so triage must first determine whether any reported improvement needs follow-up.

Written by the indexing model from the issue text.

Assessment

Tech stack
wasm
Domain
performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.