dotnet / perf-autofiling-issues

A landing place for auto-filed performance issues before they receive triage
MIT License
9 stars 4 forks source link

[Perf] Linux/x64: 127 Improvements on 6/6/2024 8:03:47 PM #36261

Open performanceautofiler[bot] opened 5 months ago

performanceautofiler[bot] commented 5 months ago

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Memory.Span<Char>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
39.91 ns 21.08 ns 0.53 0.38 False
49.97 ns 30.60 ns 0.61 0.35 False
46.23 ns 24.86 ns 0.54 0.38 False
50.34 ns 30.82 ns 0.61 0.32 False
41.61 ns 23.45 ns 0.56 0.34 False
58.35 ns 35.72 ns 0.61 0.16 False
277.11 ns 246.37 ns 0.89 0.02 False
38.71 ns 14.80 ns 0.38 0.30 False

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

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Char&gt;*'
### System.Memory.Span<Char>.SequenceEqual(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.EndsWith(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.StartsWith(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.SequenceEqual(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.EndsWith(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.Fill(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.SequenceEqual(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Char>.Fill(Size: 4) #### 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 TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Numerics.Tests.Perf_Quaternion

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
37.37 ns 19.21 ns 0.51 0.27 False
74.50 ns 17.68 ns 0.24 0.17 False
170.46 ns 12.84 ns 0.08 0.16 True
57.01 ns 12.28 ns 0.22 0.16 True
169.73 ns 12.66 ns 0.07 0.19 True
222.16 ns 142.99 ns 0.64 0.15 False
123.36 ns 5.34 ns 0.04 0.19 True
169.23 ns 13.13 ns 0.08 0.19 False
169.01 ns 12.72 ns 0.08 0.17 True
120.44 ns 12.92 ns 0.11 0.20 False
144.43 ns 39.98 ns 0.28 0.22 False
112.09 ns 33.15 ns 0.30 0.17 False
128.40 ns 12.87 ns 0.10 0.18 True
112.30 ns 32.18 ns 0.29 0.16 True
122.72 ns 23.85 ns 0.19 0.20 False
128.62 ns 77.73 ns 0.60 0.15 False
130.01 ns 79.03 ns 0.61 0.15 False
169.66 ns 12.49 ns 0.07 0.17 True
135.58 ns 38.32 ns 0.28 0.18 False
144.33 ns 15.27 ns 0.11 0.20 False
72.61 ns 16.18 ns 0.22 0.17 False

graph 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

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Quaternion*'
### System.Numerics.Tests.Perf_Quaternion.CreateFromVector3WithScalarBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.LengthBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.DivideBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.IdentityBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.AddOperatorBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.MultiplyByQuaternionBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.EqualsBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.SubtractionOperatorBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.SubtractBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.ConjugateBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.InequalityOperatorBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.MultiplyByScalarBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.NegationOperatorBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.MultiplyByScalarOperatorBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.NegateBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.LerpBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.SlerpBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.AddBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.EqualityOperatorBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.DotBenchmark #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_Quaternion.LengthSquaredBenchmark #### 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 TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Text.Json.Serialization.Tests.WriteJson<ClassRecord>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
10.85 μs 9.47 μs 0.87 0.14 False
5.46 μs 4.39 μs 0.80 0.15 False

graph graph Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Text.Json.Serialization.Tests.WriteJson&lt;ClassRecord&gt;*'
### System.Text.Json.Serialization.Tests.WriteJson<ClassRecord>.SerializeObjectProperty(Mode: SourceGen) #### ETL Files #### Histogram #### JIT Disasms ### System.Text.Json.Serialization.Tests.WriteJson<ClassRecord>.SerializeToString(Mode: SourceGen) #### 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)
performanceautofiler[bot] commented 5 months ago

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Memory.Span<Int32>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
511.96 ns 470.00 ns 0.92 0.02 False
38.72 ns 14.63 ns 0.38 0.35 False
286.87 ns 249.28 ns 0.87 0.02 False
46.62 ns 26.43 ns 0.57 0.31 False
64.41 ns 44.86 ns 0.70 0.21 False
278.86 ns 249.40 ns 0.89 0.02 False
58.56 ns 34.84 ns 0.59 0.19 False
36.51 ns 19.57 ns 0.54 0.40 False
42.70 ns 24.46 ns 0.57 0.36 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

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Int32&gt;*'
### System.Memory.Span<Int32>.SequenceEqual(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.Fill(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.EndsWith(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.EndsWith(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.SequenceEqual(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.StartsWith(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.Fill(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.SequenceEqual(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Int32>.StartsWith(Size: 4) #### 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 TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Memory.Span<Byte>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
93.66 ns 75.97 ns 0.81 0.17 False
38.08 ns 20.49 ns 0.54 0.39 False
39.61 ns 23.56 ns 0.59 0.38 False
34.43 ns 18.30 ns 0.53 0.39 False
40.16 ns 21.31 ns 0.53 0.35 False
150.71 ns 108.48 ns 0.72 0.10 False
99.43 ns 74.95 ns 0.75 0.16 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

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span&lt;Byte&gt;*'
### System.Memory.Span<Byte>.StartsWith(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Byte>.StartsWith(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Byte>.EndsWith(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Byte>.SequenceEqual(Size: 4) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Byte>.StartsWith(Size: 33) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Byte>.SequenceEqual(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Memory.Span<Byte>.EndsWith(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)

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Collections.ContainsFalse<String>

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
13.38 ms 9.83 ms 0.73 0.13 False
13.55 ms 9.88 ms 0.73 0.21 False
13.16 ms 9.28 ms 0.70 0.14 False
13.50 ms 9.59 ms 0.71 0.15 False
13.55 ms 9.37 ms 0.69 0.17 False

graph graph graph graph graph Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.ContainsFalse&lt;String&gt;*'
### System.Collections.ContainsFalse<String>.ImmutableArray(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Collections.ContainsFalse<String>.LinkedList(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Collections.ContainsFalse<String>.List(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Collections.ContainsFalse<String>.Stack(Size: 512) #### ETL Files #### Histogram #### JIT Disasms ### System.Collections.ContainsFalse<String>.Array(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)

Run Information

Name Value
Architecture x64
OS ubuntu 22.04
Queue TigerUbuntu
Baseline d22909e0225e885b85c55b9242fb51c81e5256ad
Compare 17d88ed72da4b70821159169499a805b87739ee6
Diff Diff
Configs CompilationMode:wasm, RunKind:micro

Improvements in System.Numerics.Tests.Perf_VectorConvert

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio
54.42 μs 13.92 μs 0.26 0.18 True
139.08 μs 104.59 μs 0.75 0.17 False
90.84 μs 50.39 μs 0.55 0.18 False
66.82 μs 27.19 μs 0.41 0.19 False

graph graph graph graph Test Report

Repro

General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_VectorConvert*'
### System.Numerics.Tests.Perf_VectorConvert.Convert_int_float #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_VectorConvert.Convert_double_ulong #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_VectorConvert.Convert_float_int #### ETL Files #### Histogram #### JIT Disasms ### System.Numerics.Tests.Perf_VectorConvert.Convert_double_long #### 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)
lewing commented 5 months ago

Diff is https://github.com/dotnet/runtime/compare/8b35851795d7d322b7f40f42c4e63765d74f8eed...3178a5f4ab048bc05f0ac94a1645ae89e4dc2d66 @kg now I'm even more confused :)