|
8 | 8 | - LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3)
|
9 | 9 | - LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0)
|
10 | 10 | - 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) |
13 | 12 | - NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48)
|
14 | 13 | - System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1)
|
15 | 14 | - Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5)
|
16 | 15 |
|
17 | 16 | ### Results:
|
18 |
| -``` ini |
| 17 | +``` |
19 | 18 |
|
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) |
21 | 20 | 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 |
26 | 25 |
|
27 | 26 |
|
28 | 27 | ```
|
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 | |
0 commit comments