Skip to content

Commit fd9b0de

Browse files
committed
Updated the bechmarks to .NET 8 vs. .NET 9
1 parent e6c0998 commit fd9b0de

File tree

68 files changed

+1936
-2036
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1936
-2036
lines changed

Diff for: Results/Array.Int32.ArrayInt32Contains.md

+34-35
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,47 @@
88
- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3)
99
- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0)
1010
- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0)
11-
- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1)
12-
- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1)
11+
- StructLinq.BCL: [0.28.2](https://www.nuget.org/packages/StructLinq/0.28.2)
1312
- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48)
1413
- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1)
1514
- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5)
1615

1716
### Results:
18-
``` ini
17+
```
1918
20-
BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3516/22H2/2022Update)
19+
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3996/22H2/2022Update)
2120
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
22-
.NET SDK=8.0.100-rc.1.23463.5
23-
[Host] : .NET 6.0.22 (6.0.2223.42425), X64 RyuJIT AVX2
24-
Job-VLSRZF : .NET 6.0.22 (6.0.2223.42425), X64 RyuJIT AVX2
25-
Job-CRYVOQ : .NET 8.0.0 (8.0.23.41904), X64 RyuJIT AVX2
21+
.NET SDK 9.0.100-preview.1.24101.2
22+
[Host] : .NET 6.0.26 (6.0.2623.60508), X64 RyuJIT AVX2
23+
Job-THTHEP : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
24+
Job-OQLBIM : .NET 9.0.0 (9.0.24.8009), X64 RyuJIT AVX2
2625
2726
2827
```
29-
| Method | Runtime | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
30-
|------------------------- |--------- |------ |----------:|---------:|---------:|-------------:|--------:|-------:|----------:|------------:|
31-
| ForLoop | .NET 6.0 | 100 | 41.29 ns | 0.481 ns | 0.402 ns | baseline | | - | - | NA |
32-
| ForeachLoop | .NET 6.0 | 100 | 41.07 ns | 0.814 ns | 1.030 ns | 1.00x slower | 0.03x | - | - | NA |
33-
| Linq | .NET 6.0 | 100 | 32.64 ns | 0.404 ns | 0.315 ns | 1.27x faster | 0.02x | - | - | NA |
34-
| LinqFaster | .NET 6.0 | 100 | 33.61 ns | 0.672 ns | 0.826 ns | 1.23x faster | 0.03x | - | - | NA |
35-
| LinqFaster_SIMD | .NET 6.0 | 100 | 12.57 ns | 0.262 ns | 0.205 ns | 3.29x faster | 0.06x | - | - | NA |
36-
| LinqFasterer | .NET 6.0 | 100 | 32.51 ns | 0.677 ns | 0.780 ns | 1.26x faster | 0.04x | - | - | NA |
37-
| LinqAF | .NET 6.0 | 100 | 33.11 ns | 0.570 ns | 0.476 ns | 1.25x faster | 0.02x | - | - | NA |
38-
| StructLinq | .NET 6.0 | 100 | 88.80 ns | 1.439 ns | 1.276 ns | 2.15x slower | 0.04x | 0.0153 | 32 B | NA |
39-
| StructLinq_ValueDelegate | .NET 6.0 | 100 | 50.09 ns | 0.338 ns | 0.282 ns | 1.21x slower | 0.01x | - | - | NA |
40-
| Hyperlinq | .NET 6.0 | 100 | 35.07 ns | 0.365 ns | 0.304 ns | 1.18x faster | 0.02x | 0.0153 | 32 B | NA |
41-
| Hyperlinq_SIMD | .NET 6.0 | 100 | 24.36 ns | 0.483 ns | 0.496 ns | 1.69x faster | 0.04x | - | - | NA |
42-
| Faslinq | .NET 6.0 | 100 | 197.40 ns | 3.880 ns | 4.152 ns | 4.81x slower | 0.12x | 0.0305 | 64 B | NA |
43-
| | | | | | | | | | | |
44-
| ForLoop | .NET 8.0 | 100 | 40.09 ns | 0.738 ns | 0.617 ns | baseline | | - | - | NA |
45-
| ForeachLoop | .NET 8.0 | 100 | 40.46 ns | 0.803 ns | 0.859 ns | 1.01x slower | 0.03x | - | - | NA |
46-
| Linq | .NET 8.0 | 100 | 11.41 ns | 0.068 ns | 0.061 ns | 3.51x faster | 0.06x | - | - | NA |
47-
| LinqFaster | .NET 8.0 | 100 | 10.77 ns | 0.112 ns | 0.105 ns | 3.72x faster | 0.07x | - | - | NA |
48-
| LinqFaster_SIMD | .NET 8.0 | 100 | 18.63 ns | 0.079 ns | 0.066 ns | 2.15x faster | 0.04x | - | - | NA |
49-
| LinqFasterer | .NET 8.0 | 100 | 12.07 ns | 0.251 ns | 0.210 ns | 3.32x faster | 0.08x | - | - | NA |
50-
| LinqAF | .NET 8.0 | 100 | 14.73 ns | 0.209 ns | 0.163 ns | 2.72x faster | 0.06x | - | - | NA |
51-
| StructLinq | .NET 8.0 | 100 | 74.59 ns | 1.419 ns | 1.258 ns | 1.86x slower | 0.05x | 0.0153 | 32 B | NA |
52-
| StructLinq_ValueDelegate | .NET 8.0 | 100 | 44.51 ns | 0.651 ns | 0.723 ns | 1.11x slower | 0.02x | - | - | NA |
53-
| Hyperlinq | .NET 8.0 | 100 | 17.33 ns | 0.248 ns | 0.207 ns | 2.31x faster | 0.04x | 0.0153 | 32 B | NA |
54-
| Hyperlinq_SIMD | .NET 8.0 | 100 | 11.50 ns | 0.235 ns | 0.208 ns | 3.48x faster | 0.08x | - | - | NA |
55-
| Faslinq | .NET 8.0 | 100 | 75.54 ns | 0.853 ns | 0.666 ns | 1.89x slower | 0.03x | 0.0305 | 64 B | NA |
28+
| Method | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
29+
|------------------------- |--------- |------ |----------:|---------:|---------:|----------:|-------------:|--------:|-------:|----------:|------------:|
30+
| ForLoop | .NET 8.0 | 100 | 41.67 ns | 0.872 ns | 1.457 ns | 41.28 ns | baseline | | - | - | NA |
31+
| ForeachLoop | .NET 8.0 | 100 | 41.07 ns | 0.863 ns | 1.642 ns | 40.47 ns | 1.01x faster | 0.05x | - | - | NA |
32+
| Linq | .NET 8.0 | 100 | 12.03 ns | 0.332 ns | 0.965 ns | 11.55 ns | 3.50x faster | 0.30x | - | - | NA |
33+
| LinqFaster | .NET 8.0 | 100 | 12.42 ns | 0.286 ns | 0.811 ns | 12.10 ns | 3.31x faster | 0.21x | - | - | NA |
34+
| LinqFaster_SIMD | .NET 8.0 | 100 | 19.12 ns | 0.359 ns | 0.280 ns | 19.00 ns | 2.17x faster | 0.07x | - | - | NA |
35+
| LinqFasterer | .NET 8.0 | 100 | 13.62 ns | 0.372 ns | 1.067 ns | 13.08 ns | 3.08x faster | 0.25x | - | - | NA |
36+
| LinqAF | .NET 8.0 | 100 | 15.04 ns | 0.326 ns | 0.952 ns | 14.72 ns | 2.75x faster | 0.18x | - | - | NA |
37+
| StructLinq | .NET 8.0 | 100 | 75.90 ns | 1.750 ns | 5.161 ns | 74.07 ns | 1.82x slower | 0.15x | 0.0153 | 32 B | NA |
38+
| StructLinq_ValueDelegate | .NET 8.0 | 100 | 50.27 ns | 1.030 ns | 2.283 ns | 49.87 ns | 1.21x slower | 0.07x | - | - | NA |
39+
| Hyperlinq | .NET 8.0 | 100 | 18.76 ns | 0.231 ns | 0.181 ns | 18.71 ns | 2.21x faster | 0.07x | 0.0153 | 32 B | NA |
40+
| Hyperlinq_SIMD | .NET 8.0 | 100 | 12.39 ns | 0.279 ns | 0.298 ns | 12.27 ns | 3.38x faster | 0.12x | - | - | NA |
41+
| Faslinq | .NET 8.0 | 100 | 77.18 ns | 1.511 ns | 3.411 ns | 75.89 ns | 1.87x slower | 0.12x | 0.0305 | 64 B | NA |
42+
| | | | | | | | | | | | |
43+
| ForLoop | .NET 9.0 | 100 | 41.49 ns | 0.863 ns | 1.027 ns | 41.43 ns | baseline | | - | - | NA |
44+
| ForeachLoop | .NET 9.0 | 100 | 42.81 ns | 0.888 ns | 0.987 ns | 42.58 ns | 1.03x slower | 0.04x | - | - | NA |
45+
| Linq | .NET 9.0 | 100 | 12.36 ns | 0.280 ns | 0.520 ns | 12.13 ns | 3.36x faster | 0.14x | - | - | NA |
46+
| LinqFaster | .NET 9.0 | 100 | 14.36 ns | 0.309 ns | 0.331 ns | 14.29 ns | 2.90x faster | 0.11x | - | - | NA |
47+
| LinqFaster_SIMD | .NET 9.0 | 100 | 20.36 ns | 0.403 ns | 0.357 ns | 20.21 ns | 2.05x faster | 0.07x | - | - | NA |
48+
| LinqFasterer | .NET 9.0 | 100 | 15.96 ns | 0.127 ns | 0.099 ns | 15.94 ns | 2.61x faster | 0.08x | - | - | NA |
49+
| LinqAF | .NET 9.0 | 100 | 15.67 ns | 0.149 ns | 0.117 ns | 15.63 ns | 2.66x faster | 0.09x | - | - | NA |
50+
| StructLinq | .NET 9.0 | 100 | 71.04 ns | 1.409 ns | 1.100 ns | 70.77 ns | 1.71x slower | 0.05x | 0.0153 | 32 B | NA |
51+
| StructLinq_ValueDelegate | .NET 9.0 | 100 | 67.83 ns | 1.097 ns | 0.973 ns | 67.54 ns | 1.63x slower | 0.06x | - | - | NA |
52+
| Hyperlinq | .NET 9.0 | 100 | 17.88 ns | 0.112 ns | 0.093 ns | 17.89 ns | 2.33x faster | 0.07x | 0.0153 | 32 B | NA |
53+
| Hyperlinq_SIMD | .NET 9.0 | 100 | 18.34 ns | 0.394 ns | 0.454 ns | 18.18 ns | 2.27x faster | 0.08x | - | - | NA |
54+
| Faslinq | .NET 9.0 | 100 | 115.45 ns | 1.732 ns | 1.535 ns | 115.28 ns | 2.77x slower | 0.09x | 0.0305 | 64 B | NA |

Diff for: Results/Array.Int32.ArrayInt32Distinct.md

+24-25
Original file line numberDiff line numberDiff line change
@@ -8,40 +8,39 @@
88
- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3)
99
- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0)
1010
- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0)
11-
- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1)
12-
- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1)
11+
- StructLinq.BCL: [0.28.2](https://www.nuget.org/packages/StructLinq/0.28.2)
1312
- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48)
1413
- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1)
1514
- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5)
1615

1716
### Results:
18-
``` ini
17+
```
1918
20-
BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3516/22H2/2022Update)
19+
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3996/22H2/2022Update)
2120
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
22-
.NET SDK=8.0.100-rc.1.23463.5
23-
[Host] : .NET 6.0.22 (6.0.2223.42425), X64 RyuJIT AVX2
24-
Job-VLSRZF : .NET 6.0.22 (6.0.2223.42425), X64 RyuJIT AVX2
25-
Job-CRYVOQ : .NET 8.0.0 (8.0.23.41904), X64 RyuJIT AVX2
21+
.NET SDK 9.0.100-preview.1.24101.2
22+
[Host] : .NET 6.0.26 (6.0.2623.60508), X64 RyuJIT AVX2
23+
Job-THTHEP : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2
24+
Job-OQLBIM : .NET 9.0.0 (9.0.24.8009), X64 RyuJIT AVX2
2625
2726
2827
```
29-
| Method | Runtime | Duplicates | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
28+
| Method | Runtime | Duplicates | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
3029
|------------------------- |--------- |----------- |------ |---------:|----------:|----------:|---------:|-------------:|--------:|-------:|----------:|--------------:|
31-
| ForLoop | .NET 6.0 | 4 | 100 | 2.875 μs | 0.0535 μs | 0.0595 μs | 2.860 μs | baseline | | 2.8648 | 6000 B | |
32-
| ForeachLoop | .NET 6.0 | 4 | 100 | 2.858 μs | 0.0269 μs | 0.0210 μs | 2.866 μs | 1.01x faster | 0.03x | 2.8648 | 6000 B | 1.000x more |
33-
| Linq | .NET 6.0 | 4 | 100 | 4.523 μs | 0.0455 μs | 0.0380 μs | 4.525 μs | 1.56x slower | 0.04x | 2.8610 | 5992 B | 1.001x less |
34-
| LinqFasterer | .NET 6.0 | 4 | 100 | 4.583 μs | 0.0366 μs | 0.0305 μs | 4.585 μs | 1.59x slower | 0.04x | 4.4174 | 9272 B | 1.545x more |
35-
| LinqAF | .NET 6.0 | 4 | 100 | 7.261 μs | 0.1439 μs | 0.2197 μs | 7.195 μs | 2.53x slower | 0.11x | 5.9280 | 12400 B | 2.067x more |
36-
| StructLinq | .NET 6.0 | 4 | 100 | 3.334 μs | 0.0529 μs | 0.0566 μs | 3.325 μs | 1.16x slower | 0.03x | 0.0153 | 32 B | 187.500x less |
37-
| StructLinq_ValueDelegate | .NET 6.0 | 4 | 100 | 3.344 μs | 0.0617 μs | 0.0577 μs | 3.327 μs | 1.16x slower | 0.03x | - | - | NA |
38-
| Hyperlinq | .NET 6.0 | 4 | 100 | 3.341 μs | 0.0541 μs | 0.0452 μs | 3.333 μs | 1.16x slower | 0.03x | - | - | NA |
30+
| ForLoop | .NET 8.0 | 4 | 100 | 2.884 μs | 0.0550 μs | 0.0430 μs | 2.868 μs | baseline | | 2.8648 | 6000 B | |
31+
| ForeachLoop | .NET 8.0 | 4 | 100 | 2.868 μs | 0.0346 μs | 0.0324 μs | 2.865 μs | 1.00x faster | 0.02x | 2.8648 | 6000 B | 1.000x more |
32+
| Linq | .NET 8.0 | 4 | 100 | 3.685 μs | 0.0733 μs | 0.1654 μs | 3.603 μs | 1.29x slower | 0.06x | 2.8648 | 5992 B | 1.001x less |
33+
| LinqFasterer | .NET 8.0 | 4 | 100 | 3.725 μs | 0.0843 μs | 0.2364 μs | 3.629 μs | 1.28x slower | 0.08x | 4.4212 | 9272 B | 1.545x more |
34+
| LinqAF | .NET 8.0 | 4 | 100 | 5.854 μs | 0.1137 μs | 0.3133 μs | 5.733 μs | 2.01x slower | 0.11x | 5.9280 | 12400 B | 2.067x more |
35+
| StructLinq | .NET 8.0 | 4 | 100 | 2.762 μs | 0.0517 μs | 0.0404 μs | 2.758 μs | 1.04x faster | 0.02x | 0.0153 | 32 B | 187.500x less |
36+
| StructLinq_ValueDelegate | .NET 8.0 | 4 | 100 | 2.772 μs | 0.0515 μs | 0.1163 μs | 2.743 μs | 1.03x faster | 0.05x | - | - | NA |
37+
| Hyperlinq | .NET 8.0 | 4 | 100 | 2.588 μs | 0.0504 μs | 0.1018 μs | 2.553 μs | 1.13x faster | 0.04x | - | - | NA |
3938
| | | | | | | | | | | | | |
40-
| ForLoop | .NET 8.0 | 4 | 100 | 3.009 μs | 0.0602 μs | 0.1100 μs | 2.959 μs | baseline | | 2.8648 | 6000 B | |
41-
| ForeachLoop | .NET 8.0 | 4 | 100 | 3.010 μs | 0.0595 μs | 0.0908 μs | 2.968 μs | 1.00x faster | 0.05x | 2.8648 | 6000 B | 1.000x more |
42-
| Linq | .NET 8.0 | 4 | 100 | 3.678 μs | 0.0494 μs | 0.0549 μs | 3.667 μs | 1.22x slower | 0.06x | 2.8610 | 5992 B | 1.001x less |
43-
| LinqFasterer | .NET 8.0 | 4 | 100 | 3.642 μs | 0.0687 μs | 0.0642 μs | 3.612 μs | 1.20x slower | 0.06x | 4.4174 | 9272 B | 1.545x more |
44-
| LinqAF | .NET 8.0 | 4 | 100 | 5.734 μs | 0.0731 μs | 0.0783 μs | 5.710 μs | 1.90x slower | 0.07x | 5.9280 | 12400 B | 2.067x more |
45-
| StructLinq | .NET 8.0 | 4 | 100 | 2.639 μs | 0.0506 μs | 0.0448 μs | 2.630 μs | 1.16x faster | 0.06x | 0.0153 | 32 B | 187.500x less |
46-
| StructLinq_ValueDelegate | .NET 8.0 | 4 | 100 | 2.602 μs | 0.0234 μs | 0.0195 μs | 2.601 μs | 1.18x faster | 0.06x | - | - | NA |
47-
| Hyperlinq | .NET 8.0 | 4 | 100 | 2.518 μs | 0.0384 μs | 0.0427 μs | 2.509 μs | 1.20x faster | 0.05x | - | - | NA |
39+
| ForLoop | .NET 9.0 | 4 | 100 | 2.987 μs | 0.0595 μs | 0.1578 μs | 2.911 μs | baseline | | 2.8648 | 6000 B | |
40+
| ForeachLoop | .NET 9.0 | 4 | 100 | 2.894 μs | 0.0322 μs | 0.0302 μs | 2.881 μs | 1.05x faster | 0.06x | 2.8610 | 6000 B | 1.000x more |
41+
| Linq | .NET 9.0 | 4 | 100 | 3.986 μs | 0.0790 μs | 0.1751 μs | 3.911 μs | 1.34x slower | 0.09x | 2.8610 | 5992 B | 1.001x less |
42+
| LinqFasterer | .NET 9.0 | 4 | 100 | 3.574 μs | 0.0666 μs | 0.1622 μs | 3.496 μs | 1.19x slower | 0.08x | 4.4212 | 9272 B | 1.545x more |
43+
| LinqAF | .NET 9.0 | 4 | 100 | 5.827 μs | 0.0918 μs | 0.1057 μs | 5.784 μs | 1.95x slower | 0.11x | 5.9280 | 12400 B | 2.067x more |
44+
| StructLinq | .NET 9.0 | 4 | 100 | 2.706 μs | 0.0384 μs | 0.0321 μs | 2.698 μs | 1.11x faster | 0.06x | 0.0153 | 32 B | 187.500x less |
45+
| StructLinq_ValueDelegate | .NET 9.0 | 4 | 100 | 2.700 μs | 0.0531 μs | 0.0710 μs | 2.671 μs | 1.10x faster | 0.05x | - | - | NA |
46+
| Hyperlinq | .NET 9.0 | 4 | 100 | 2.956 μs | 0.0563 μs | 0.0553 μs | 2.947 μs | 1.02x faster | 0.05x | - | - | NA |

0 commit comments

Comments
 (0)