diff --git a/Results/Array.Int32.ArrayInt32Contains.md b/Results/Array.Int32.ArrayInt32Contains.md deleted file mode 100644 index 5a336707..00000000 --- a/Results/Array.Int32.ArrayInt32Contains.md +++ /dev/null @@ -1,57 +0,0 @@ -## Array.Int32.ArrayInt32Contains - -### Source -[ArrayInt32Contains.cs](../LinqBenchmarks/Array/Int32/ArrayInt32Contains.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|---------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 41.02 ns | 0.530 ns | 0.567 ns | 40.80 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 40.35 ns | 0.375 ns | 0.293 ns | 40.28 ns | 1.02x faster | 0.02x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 33.52 ns | 0.580 ns | 0.712 ns | 33.34 ns | 1.22x faster | 0.03x | - | - | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 33.37 ns | 0.415 ns | 0.324 ns | 33.28 ns | 1.23x faster | 0.03x | - | - | NA | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 100 | 11.62 ns | 0.257 ns | 0.423 ns | 11.39 ns | 3.54x faster | 0.11x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 29.13 ns | 0.213 ns | 0.178 ns | 29.11 ns | 1.41x faster | 0.03x | - | - | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 33.28 ns | 0.326 ns | 0.272 ns | 33.18 ns | 1.23x faster | 0.02x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 100.69 ns | 2.025 ns | 4.891 ns | 98.08 ns | 2.44x slower | 0.10x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 50.37 ns | 0.259 ns | 0.242 ns | 50.25 ns | 1.23x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 35.30 ns | 0.595 ns | 0.731 ns | 35.03 ns | 1.16x faster | 0.03x | 0.0153 | 32 B | NA | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 100 | 24.86 ns | 0.486 ns | 0.521 ns | 24.65 ns | 1.65x faster | 0.04x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 203.15 ns | 4.782 ns | 13.797 ns | 195.02 ns | 5.00x slower | 0.32x | 0.0305 | 64 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 41.60 ns | 0.821 ns | 2.075 ns | 40.52 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 41.08 ns | 0.805 ns | 1.322 ns | 40.48 ns | 1.02x faster | 0.07x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 12.16 ns | 0.275 ns | 0.706 ns | 11.80 ns | 3.43x faster | 0.26x | - | - | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 10.66 ns | 0.266 ns | 0.777 ns | 10.19 ns | 3.94x faster | 0.23x | - | - | NA | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 100 | 19.11 ns | 0.394 ns | 1.017 ns | 18.59 ns | 2.18x faster | 0.14x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 12.19 ns | 0.093 ns | 0.082 ns | 12.18 ns | 3.50x faster | 0.24x | - | - | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 15.42 ns | 0.272 ns | 0.415 ns | 15.31 ns | 2.73x faster | 0.15x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 73.78 ns | 1.476 ns | 1.308 ns | 73.36 ns | 1.73x slower | 0.12x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 45.67 ns | 0.748 ns | 0.663 ns | 45.45 ns | 1.07x slower | 0.07x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 17.53 ns | 0.372 ns | 0.382 ns | 17.37 ns | 2.41x faster | 0.14x | 0.0153 | 32 B | NA | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 100 | 12.40 ns | 0.276 ns | 0.387 ns | 12.30 ns | 3.40x faster | 0.23x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 79.15 ns | 1.778 ns | 5.131 ns | 76.50 ns | 1.91x slower | 0.14x | 0.0305 | 64 B | NA | diff --git a/Results/Array.Int32.ArrayInt32Distinct.md b/Results/Array.Int32.ArrayInt32Distinct.md deleted file mode 100644 index 61e16c87..00000000 --- a/Results/Array.Int32.ArrayInt32Distinct.md +++ /dev/null @@ -1,49 +0,0 @@ -## Array.Int32.ArrayInt32Distinct - -### Source -[ArrayInt32Distinct.cs](../LinqBenchmarks/Array/Int32/ArrayInt32Distinct.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Duplicates | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----------- |------ |---------:|----------:|----------:|---------:|-------------:|--------:|-------:|----------:|--------------:| -| ForLoop | .NET 6 | .NET 6.0 | 4 | 100 | 3.028 μs | 0.0575 μs | 0.1473 μs | 2.969 μs | baseline | | 2.8648 | 6000 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 4 | 100 | 3.019 μs | 0.0593 μs | 0.0974 μs | 2.977 μs | 1.01x faster | 0.06x | 2.8648 | 6000 B | 1.000x more | -| Linq | .NET 6 | .NET 6.0 | 4 | 100 | 4.695 μs | 0.0439 μs | 0.0389 μs | 4.688 μs | 1.54x slower | 0.08x | 2.8610 | 5992 B | 1.001x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 4 | 100 | 4.786 μs | 0.0570 μs | 0.0476 μs | 4.771 μs | 1.59x slower | 0.06x | 4.4174 | 9272 B | 1.545x more | -| LinqAF | .NET 6 | .NET 6.0 | 4 | 100 | 7.185 μs | 0.0660 μs | 0.0618 μs | 7.172 μs | 2.36x slower | 0.12x | 5.9204 | 12400 B | 2.067x more | -| StructLinq | .NET 6 | .NET 6.0 | 4 | 100 | 3.536 μs | 0.0707 μs | 0.1900 μs | 3.430 μs | 1.17x slower | 0.09x | 0.0153 | 32 B | 187.500x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 4 | 100 | 3.491 μs | 0.0722 μs | 0.2072 μs | 3.374 μs | 1.15x slower | 0.08x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 4 | 100 | 3.403 μs | 0.0671 μs | 0.1210 μs | 3.334 μs | 1.12x slower | 0.05x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 4 | 100 | 3.014 μs | 0.0505 μs | 0.0601 μs | 2.993 μs | baseline | | 2.8648 | 6000 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 4 | 100 | 3.011 μs | 0.0467 μs | 0.0607 μs | 2.997 μs | 1.00x faster | 0.03x | 2.8648 | 6000 B | 1.000x more | -| Linq | .NET 8 | .NET 8.0 | 4 | 100 | 3.700 μs | 0.0297 μs | 0.0278 μs | 3.695 μs | 1.22x slower | 0.03x | 2.8610 | 5992 B | 1.001x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 4 | 100 | 3.714 μs | 0.0305 μs | 0.0270 μs | 3.709 μs | 1.23x slower | 0.03x | 4.4174 | 9272 B | 1.545x more | -| LinqAF | .NET 8 | .NET 8.0 | 4 | 100 | 5.661 μs | 0.1060 μs | 0.1262 μs | 5.612 μs | 1.88x slower | 0.05x | 5.9280 | 12400 B | 2.067x more | -| StructLinq | .NET 8 | .NET 8.0 | 4 | 100 | 2.642 μs | 0.0527 μs | 0.0493 μs | 2.624 μs | 1.15x faster | 0.04x | 0.0153 | 32 B | 187.500x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 4 | 100 | 2.696 μs | 0.0536 μs | 0.1450 μs | 2.626 μs | 1.11x faster | 0.07x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 4 | 100 | 2.492 μs | 0.0497 μs | 0.0441 μs | 2.477 μs | 1.22x faster | 0.04x | - | - | NA | diff --git a/Results/Array.Int32.ArrayInt32Select.md b/Results/Array.Int32.ArrayInt32Select.md deleted file mode 100644 index 3fbe3b0d..00000000 --- a/Results/Array.Int32.ArrayInt32Select.md +++ /dev/null @@ -1,63 +0,0 @@ -## Array.Int32.ArrayInt32Select - -### Source -[ArrayInt32Select.cs](../LinqBenchmarks/Array/Int32/ArrayInt32Select.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|-----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 56.79 ns | 0.303 ns | 0.237 ns | 56.77 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 57.39 ns | 0.277 ns | 0.216 ns | 57.32 ns | 1.01x slower | 0.00x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 636.78 ns | 5.696 ns | 4.756 ns | 635.84 ns | 11.22x slower | 0.09x | 0.0229 | 48 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 255.54 ns | 2.488 ns | 2.327 ns | 254.84 ns | 4.51x slower | 0.04x | 0.2027 | 424 B | NA | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 100 | 112.78 ns | 2.650 ns | 7.560 ns | 108.82 ns | 2.02x slower | 0.15x | 0.2027 | 424 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 606.94 ns | 11.160 ns | 10.961 ns | 603.34 ns | 10.71x slower | 0.23x | 0.2174 | 456 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 258.98 ns | 1.949 ns | 1.728 ns | 258.74 ns | 4.56x slower | 0.04x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,653.11 ns | 48.474 ns | 139.082 ns | 1,574.13 ns | 28.78x slower | 2.56x | 4.2362 | 8866 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 253.48 ns | 3.626 ns | 4.964 ns | 251.95 ns | 4.50x slower | 0.12x | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,438.76 ns | 28.406 ns | 54.729 ns | 1,412.46 ns | 25.68x slower | 1.25x | 0.2785 | 584 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 218.91 ns | 4.336 ns | 9.425 ns | 213.94 ns | 3.86x slower | 0.19x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 161.96 ns | 3.274 ns | 2.902 ns | 160.77 ns | 2.84x slower | 0.04x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 247.39 ns | 6.156 ns | 18.054 ns | 236.44 ns | 4.39x slower | 0.31x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 183.05 ns | 3.363 ns | 3.453 ns | 181.45 ns | 3.24x slower | 0.07x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 255.70 ns | 2.000 ns | 1.561 ns | 256.10 ns | 4.50x slower | 0.04x | 0.2027 | 424 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 48.65 ns | 0.520 ns | 0.557 ns | 48.47 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 47.97 ns | 0.609 ns | 0.598 ns | 47.72 ns | 1.01x faster | 0.01x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 243.84 ns | 4.809 ns | 9.265 ns | 239.67 ns | 5.08x slower | 0.26x | 0.0229 | 48 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 135.20 ns | 2.564 ns | 4.354 ns | 133.28 ns | 2.79x slower | 0.09x | 0.2027 | 424 B | NA | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 100 | 97.54 ns | 0.823 ns | 0.730 ns | 97.35 ns | 2.00x slower | 0.03x | 0.2027 | 424 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 280.37 ns | 5.433 ns | 5.335 ns | 278.97 ns | 5.77x slower | 0.09x | 0.2179 | 456 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 176.46 ns | 2.072 ns | 2.386 ns | 175.84 ns | 3.63x slower | 0.05x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,162.60 ns | 10.578 ns | 9.377 ns | 1,161.81 ns | 23.88x slower | 0.28x | 4.2362 | 8865 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 163.88 ns | 3.186 ns | 5.323 ns | 160.96 ns | 3.39x slower | 0.13x | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,130.99 ns | 14.911 ns | 12.451 ns | 1,124.90 ns | 23.23x slower | 0.31x | 0.2785 | 584 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 201.94 ns | 1.510 ns | 1.483 ns | 201.50 ns | 4.15x slower | 0.05x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 145.85 ns | 1.246 ns | 0.972 ns | 145.68 ns | 3.00x slower | 0.05x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 176.10 ns | 3.373 ns | 7.750 ns | 172.14 ns | 3.65x slower | 0.16x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 149.94 ns | 0.885 ns | 0.739 ns | 149.71 ns | 3.08x slower | 0.04x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 175.90 ns | 1.249 ns | 1.388 ns | 175.53 ns | 3.61x slower | 0.05x | 0.2027 | 424 B | NA | diff --git a/Results/Array.Int32.ArrayInt32SelectToList.md b/Results/Array.Int32.ArrayInt32SelectToList.md deleted file mode 100644 index df27acaf..00000000 --- a/Results/Array.Int32.ArrayInt32SelectToList.md +++ /dev/null @@ -1,67 +0,0 @@ -## Array.Int32.ArrayInt32SelectToList - -### Source -[ArrayInt32SelectToList.cs](../LinqBenchmarks/Array/Int32/ArrayInt32SelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|----------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 307.45 ns | 6.205 ns | 15.453 ns | 300.54 ns | baseline | | 0.5660 | 1184 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 295.33 ns | 1.949 ns | 1.728 ns | 294.84 ns | 1.03x faster | 0.05x | 0.5660 | 1184 B | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 302.49 ns | 5.558 ns | 12.431 ns | 297.66 ns | 1.02x faster | 0.07x | 0.2408 | 504 B | 2.35x less | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 294.09 ns | 3.470 ns | 3.076 ns | 294.62 ns | 1.03x faster | 0.05x | 0.4206 | 880 B | 1.35x less | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 100 | 118.11 ns | 1.729 ns | 1.617 ns | 118.11 ns | 2.60x faster | 0.16x | 0.4206 | 880 B | 1.35x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 277.85 ns | 5.579 ns | 7.254 ns | 275.80 ns | 1.12x faster | 0.08x | 0.4206 | 880 B | 1.35x less | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 548.02 ns | 2.821 ns | 2.356 ns | 547.33 ns | 1.82x slower | 0.05x | 0.5655 | 1184 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,188.84 ns | 22.515 ns | 22.113 ns | 1,181.23 ns | 3.87x slower | 0.24x | 4.4327 | 9290 B | 7.85x more | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 327.91 ns | 6.086 ns | 14.225 ns | 322.61 ns | 1.07x slower | 0.05x | 0.2179 | 456 B | 2.60x less | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,380.82 ns | 27.391 ns | 31.543 ns | 1,372.44 ns | 4.45x slower | 0.32x | 0.7515 | 1576 B | 1.33x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 270.21 ns | 3.343 ns | 3.127 ns | 269.34 ns | 1.14x faster | 0.07x | 0.2484 | 520 B | 2.28x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 132.82 ns | 1.559 ns | 1.382 ns | 133.17 ns | 2.29x faster | 0.10x | 0.2370 | 496 B | 2.39x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 233.15 ns | 1.677 ns | 1.486 ns | 233.06 ns | 1.30x faster | 0.05x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 117.63 ns | 1.100 ns | 0.918 ns | 117.52 ns | 2.56x faster | 0.07x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 100 | 88.13 ns | 0.435 ns | 0.427 ns | 88.27 ns | 3.49x faster | 0.22x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate_SIMD | .NET 6 | .NET 6.0 | 100 | 57.43 ns | 1.185 ns | 1.164 ns | 57.08 ns | 5.36x faster | 0.34x | 0.2180 | 456 B | 2.60x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 276.51 ns | 3.407 ns | 2.660 ns | 276.29 ns | 1.09x faster | 0.03x | 0.4206 | 880 B | 1.35x less | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 269.35 ns | 1.886 ns | 1.575 ns | 268.65 ns | baseline | | 0.5660 | 1184 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 268.88 ns | 1.491 ns | 1.164 ns | 268.54 ns | 1.00x faster | 0.01x | 0.5660 | 1184 B | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 119.16 ns | 0.954 ns | 1.171 ns | 118.70 ns | 2.26x faster | 0.03x | 0.2408 | 504 B | 2.35x less | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 133.55 ns | 2.017 ns | 1.575 ns | 133.27 ns | 2.02x faster | 0.03x | 0.4206 | 880 B | 1.35x less | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 100 | 104.69 ns | 0.989 ns | 0.971 ns | 104.47 ns | 2.57x faster | 0.02x | 0.4207 | 880 B | 1.35x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 138.10 ns | 1.802 ns | 2.585 ns | 137.50 ns | 1.94x faster | 0.05x | 0.4206 | 880 B | 1.35x less | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 410.50 ns | 4.839 ns | 4.041 ns | 409.71 ns | 1.52x slower | 0.02x | 0.5655 | 1184 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,034.00 ns | 4.101 ns | 3.202 ns | 1,034.70 ns | 3.84x slower | 0.03x | 4.4346 | 9289 B | 7.85x more | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 254.90 ns | 1.292 ns | 1.145 ns | 254.62 ns | 1.06x faster | 0.01x | 0.2179 | 456 B | 2.60x less | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,233.24 ns | 9.762 ns | 8.152 ns | 1,230.16 ns | 4.58x slower | 0.04x | 0.7534 | 1576 B | 1.33x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 156.47 ns | 3.172 ns | 5.800 ns | 153.76 ns | 1.71x faster | 0.07x | 0.2484 | 520 B | 2.28x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 132.20 ns | 1.262 ns | 1.054 ns | 131.92 ns | 2.04x faster | 0.02x | 0.2370 | 496 B | 2.39x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 180.78 ns | 4.184 ns | 12.138 ns | 174.01 ns | 1.45x faster | 0.11x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 96.51 ns | 2.183 ns | 6.158 ns | 93.23 ns | 2.76x faster | 0.19x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 100 | 59.89 ns | 1.254 ns | 3.099 ns | 58.35 ns | 4.41x faster | 0.28x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate_SIMD | .NET 8 | .NET 8.0 | 100 | 46.83 ns | 1.532 ns | 4.421 ns | 44.22 ns | 5.75x faster | 0.51x | 0.2180 | 456 B | 2.60x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 199.35 ns | 4.776 ns | 13.705 ns | 191.59 ns | 1.35x faster | 0.08x | 0.4206 | 880 B | 1.35x less | diff --git a/Results/Array.Int32.ArrayInt32SkipTakeSelect.md b/Results/Array.Int32.ArrayInt32SkipTakeSelect.md deleted file mode 100644 index 40e47d79..00000000 --- a/Results/Array.Int32.ArrayInt32SkipTakeSelect.md +++ /dev/null @@ -1,57 +0,0 @@ -## Array.Int32.ArrayInt32SkipTakeSelect - -### Source -[ArrayInt32SkipTakeSelect.cs](../LinqBenchmarks/Array/Int32/ArrayInt32SkipTakeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|-----------:|-----------:|------------:|---------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 59.53 ns | 0.537 ns | 0.448 ns | 59.39 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,025.47 ns | 10.007 ns | 8.356 ns | 1,023.25 ns | 17.23x slower | 0.12x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 326.38 ns | 3.172 ns | 2.649 ns | 325.22 ns | 5.48x slower | 0.06x | 0.6080 | 1272 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 725.98 ns | 25.226 ns | 73.187 ns | 686.71 ns | 12.27x slower | 1.30x | 0.4206 | 880 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 2,527.53 ns | 39.779 ns | 50.308 ns | 2,510.80 ns | 42.81x slower | 1.07x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 2,148.98 ns | 25.124 ns | 20.980 ns | 2,155.85 ns | 36.10x slower | 0.52x | 4.2343 | 8866 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 257.00 ns | 0.730 ns | 0.610 ns | 256.90 ns | 4.32x slower | 0.03x | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 7,618.54 ns | 231.742 ns | 676.003 ns | 7,255.97 ns | 128.47x slower | 11.82x | 0.4349 | 912 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 276.26 ns | 5.483 ns | 8.853 ns | 272.03 ns | 4.68x slower | 0.19x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 164.50 ns | 1.643 ns | 1.372 ns | 164.05 ns | 2.76x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 253.13 ns | 4.678 ns | 3.652 ns | 251.85 ns | 4.25x slower | 0.06x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 200.88 ns | 3.814 ns | 3.746 ns | 199.42 ns | 3.39x slower | 0.07x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 58.37 ns | 0.365 ns | 0.285 ns | 58.38 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 630.10 ns | 2.498 ns | 1.950 ns | 630.34 ns | 10.79x slower | 0.05x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 211.15 ns | 1.695 ns | 1.586 ns | 210.99 ns | 3.61x slower | 0.03x | 0.6080 | 1272 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 359.36 ns | 5.011 ns | 4.922 ns | 357.67 ns | 6.15x slower | 0.07x | 0.4206 | 880 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 1,972.54 ns | 27.854 ns | 23.259 ns | 1,964.64 ns | 33.80x slower | 0.38x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 1,759.94 ns | 28.678 ns | 28.166 ns | 1,757.84 ns | 30.16x slower | 0.51x | 4.2362 | 8865 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 199.22 ns | 3.919 ns | 6.439 ns | 196.15 ns | 3.40x slower | 0.09x | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 5,681.95 ns | 66.565 ns | 51.970 ns | 5,666.70 ns | 97.34x slower | 0.72x | 0.4349 | 912 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 206.61 ns | 4.117 ns | 9.292 ns | 201.33 ns | 3.56x slower | 0.18x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 155.53 ns | 0.988 ns | 0.825 ns | 155.40 ns | 2.66x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 171.22 ns | 3.019 ns | 5.443 ns | 168.45 ns | 2.96x slower | 0.12x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 152.79 ns | 1.735 ns | 1.355 ns | 152.47 ns | 2.62x slower | 0.02x | - | - | NA | diff --git a/Results/Array.Int32.ArrayInt32SkipTakeWhere.md b/Results/Array.Int32.ArrayInt32SkipTakeWhere.md deleted file mode 100644 index 16172bf0..00000000 --- a/Results/Array.Int32.ArrayInt32SkipTakeWhere.md +++ /dev/null @@ -1,57 +0,0 @@ -## Array.Int32.ArrayInt32SkipTakeWhere - -### Source -[ArrayInt32SkipTakeWhere.cs](../LinqBenchmarks/Array/Int32/ArrayInt32SkipTakeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|-----------:|-------------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 98.09 ns | 1.988 ns | 4.150 ns | 95.75 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,495.65 ns | 8.722 ns | 6.810 ns | 1,494.51 ns | 14.92x slower | 0.66x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 353.04 ns | 6.988 ns | 14.587 ns | 347.73 ns | 3.60x slower | 0.17x | 0.7191 | 1504 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 553.85 ns | 3.970 ns | 3.315 ns | 552.61 ns | 5.55x slower | 0.25x | 0.3281 | 688 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 2,883.50 ns | 52.133 ns | 60.037 ns | 2,864.86 ns | 29.42x slower | 1.20x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 1,948.09 ns | 58.155 ns | 171.472 ns | 1,851.48 ns | 19.60x slower | 1.58x | 4.1389 | 8674 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 320.84 ns | 8.073 ns | 22.901 ns | 308.73 ns | 3.28x slower | 0.22x | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 7,570.89 ns | 150.950 ns | 423.280 ns | 7,320.35 ns | 77.72x slower | 5.96x | 0.4349 | 912 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 341.93 ns | 6.347 ns | 5.300 ns | 342.37 ns | 3.42x slower | 0.15x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 167.30 ns | 3.143 ns | 3.494 ns | 165.97 ns | 1.70x slower | 0.07x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 455.94 ns | 4.771 ns | 5.303 ns | 453.80 ns | 4.65x slower | 0.21x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 222.26 ns | 2.678 ns | 2.374 ns | 221.30 ns | 2.23x slower | 0.09x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 95.84 ns | 1.892 ns | 2.652 ns | 94.41 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 768.88 ns | 15.231 ns | 38.489 ns | 747.87 ns | 7.97x slower | 0.36x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 237.18 ns | 2.752 ns | 2.298 ns | 236.81 ns | 2.49x slower | 0.06x | 0.7191 | 1504 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 250.87 ns | 2.148 ns | 2.109 ns | 250.12 ns | 2.63x slower | 0.06x | 0.3285 | 688 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 1,868.72 ns | 9.600 ns | 7.495 ns | 1,868.85 ns | 19.60x slower | 0.53x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 1,620.82 ns | 42.653 ns | 122.378 ns | 1,552.69 ns | 17.01x slower | 1.55x | 4.1389 | 8673 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 201.43 ns | 3.558 ns | 5.326 ns | 198.61 ns | 2.10x slower | 0.05x | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 6,287.66 ns | 356.669 ns | 1,023.349 ns | 5,659.57 ns | 76.61x slower | 10.80x | 0.4272 | 912 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 191.72 ns | 1.019 ns | 0.903 ns | 191.70 ns | 2.01x slower | 0.04x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 156.91 ns | 0.629 ns | 0.525 ns | 156.88 ns | 1.65x slower | 0.04x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 184.94 ns | 3.084 ns | 4.710 ns | 182.06 ns | 1.94x slower | 0.09x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 173.64 ns | 1.145 ns | 0.956 ns | 173.35 ns | 1.82x slower | 0.04x | - | - | NA | diff --git a/Results/Array.Int32.ArrayInt32Sum.md b/Results/Array.Int32.ArrayInt32Sum.md deleted file mode 100644 index 6d22c6b4..00000000 --- a/Results/Array.Int32.ArrayInt32Sum.md +++ /dev/null @@ -1,57 +0,0 @@ -## Array.Int32.ArrayInt32Sum - -### Source -[ArrayInt32Sum.cs](../LinqBenchmarks/Array/Int32/ArrayInt32Sum.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|---------:|---------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 44.66 ns | 0.895 ns | 2.229 ns | 43.40 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 43.72 ns | 0.423 ns | 0.330 ns | 43.71 ns | 1.05x faster | 0.07x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 411.10 ns | 2.299 ns | 1.919 ns | 410.96 ns | 9.04x slower | 0.50x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 51.46 ns | 1.063 ns | 2.705 ns | 49.90 ns | 1.16x slower | 0.10x | - | - | NA | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 100 | 12.43 ns | 0.116 ns | 0.114 ns | 12.41 ns | 3.63x faster | 0.21x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 61.17 ns | 0.399 ns | 0.354 ns | 61.14 ns | 1.35x slower | 0.08x | - | - | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 201.79 ns | 1.244 ns | 1.222 ns | 201.46 ns | 4.48x slower | 0.24x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 425.83 ns | 2.631 ns | 2.197 ns | 425.92 ns | 9.37x slower | 0.51x | 0.0114 | 24 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 275.72 ns | 4.435 ns | 3.703 ns | 275.27 ns | 6.07x slower | 0.35x | 0.0992 | 208 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 72.20 ns | 0.423 ns | 0.354 ns | 72.18 ns | 1.59x slower | 0.09x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 60.71 ns | 0.236 ns | 0.197 ns | 60.64 ns | 1.34x slower | 0.08x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 22.97 ns | 0.491 ns | 1.046 ns | 22.37 ns | 1.95x faster | 0.09x | - | - | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 40.33 ns | 0.818 ns | 0.909 ns | 39.90 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 40.35 ns | 0.825 ns | 0.731 ns | 39.97 ns | 1.00x slower | 0.03x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 17.82 ns | 0.339 ns | 0.452 ns | 17.62 ns | 2.25x faster | 0.06x | - | - | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 43.31 ns | 0.291 ns | 0.323 ns | 43.19 ns | 1.07x slower | 0.02x | - | - | NA | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 100 | 13.49 ns | 0.130 ns | 0.109 ns | 13.46 ns | 2.99x faster | 0.08x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 88.00 ns | 1.693 ns | 3.753 ns | 85.87 ns | 2.19x slower | 0.12x | - | - | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 222.32 ns | 1.096 ns | 0.856 ns | 222.31 ns | 5.51x slower | 0.14x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 267.97 ns | 1.506 ns | 1.258 ns | 267.40 ns | 6.64x slower | 0.16x | 0.0114 | 24 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 245.27 ns | 1.284 ns | 1.003 ns | 245.19 ns | 6.08x slower | 0.17x | 0.0992 | 208 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 58.06 ns | 0.350 ns | 0.292 ns | 57.99 ns | 1.44x slower | 0.03x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 84.51 ns | 0.473 ns | 0.369 ns | 84.52 ns | 2.10x slower | 0.05x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 11.26 ns | 0.244 ns | 0.536 ns | 10.98 ns | 3.54x faster | 0.21x | - | - | NA | diff --git a/Results/Array.Int32.ArrayInt32Where.md b/Results/Array.Int32.ArrayInt32Where.md deleted file mode 100644 index 11bf40a7..00000000 --- a/Results/Array.Int32.ArrayInt32Where.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.Int32.ArrayInt32Where - -### Source -[ArrayInt32Where.cs](../LinqBenchmarks/Array/Int32/ArrayInt32Where.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 66.33 ns | 0.381 ns | 0.318 ns | 66.39 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 66.60 ns | 0.639 ns | 0.566 ns | 66.57 ns | 1.00x slower | 0.01x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 502.23 ns | 4.229 ns | 3.748 ns | 500.82 ns | 7.56x slower | 0.06x | 0.0229 | 48 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 289.76 ns | 3.038 ns | 2.372 ns | 289.64 ns | 4.37x slower | 0.04x | 0.3171 | 664 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 666.99 ns | 5.878 ns | 5.498 ns | 664.08 ns | 10.06x slower | 0.11x | 0.2136 | 448 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 393.05 ns | 7.788 ns | 17.258 ns | 384.67 ns | 5.97x slower | 0.27x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,292.42 ns | 18.162 ns | 14.180 ns | 1,295.19 ns | 19.48x slower | 0.26x | 4.1485 | 8682 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 285.69 ns | 5.024 ns | 8.799 ns | 281.84 ns | 4.37x slower | 0.18x | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,415.91 ns | 19.363 ns | 15.117 ns | 1,410.07 ns | 21.34x slower | 0.28x | 0.2785 | 584 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 300.85 ns | 3.717 ns | 3.978 ns | 301.45 ns | 4.54x slower | 0.08x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 167.02 ns | 1.513 ns | 1.181 ns | 166.89 ns | 2.52x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 321.79 ns | 6.282 ns | 5.246 ns | 322.16 ns | 4.85x slower | 0.08x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 207.09 ns | 3.831 ns | 3.199 ns | 205.67 ns | 3.12x slower | 0.04x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 449.94 ns | 8.762 ns | 18.481 ns | 440.66 ns | 6.85x slower | 0.36x | 0.2027 | 424 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 66.34 ns | 0.382 ns | 0.338 ns | 66.34 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 66.30 ns | 0.359 ns | 0.280 ns | 66.33 ns | 1.00x faster | 0.01x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 202.59 ns | 1.181 ns | 1.047 ns | 202.52 ns | 3.05x slower | 0.02x | 0.0229 | 48 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 180.76 ns | 1.714 ns | 1.905 ns | 180.44 ns | 2.72x slower | 0.04x | 0.3173 | 664 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 410.75 ns | 8.229 ns | 14.412 ns | 403.41 ns | 6.23x slower | 0.25x | 0.2141 | 448 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 210.40 ns | 4.078 ns | 6.349 ns | 207.91 ns | 3.19x slower | 0.09x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,012.77 ns | 22.679 ns | 62.843 ns | 985.09 ns | 15.15x slower | 0.62x | 4.1485 | 8681 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 235.91 ns | 5.981 ns | 17.634 ns | 226.17 ns | 3.58x slower | 0.29x | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,052.38 ns | 10.262 ns | 10.538 ns | 1,049.35 ns | 15.87x slower | 0.22x | 0.2785 | 584 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 173.59 ns | 1.677 ns | 1.864 ns | 173.35 ns | 2.62x slower | 0.02x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 159.74 ns | 1.546 ns | 1.207 ns | 159.42 ns | 2.41x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 185.91 ns | 3.573 ns | 5.770 ns | 183.36 ns | 2.83x slower | 0.10x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 175.61 ns | 0.946 ns | 0.739 ns | 175.49 ns | 2.65x slower | 0.02x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 237.42 ns | 2.482 ns | 2.073 ns | 236.45 ns | 3.58x slower | 0.04x | 0.2027 | 424 B | NA | diff --git a/Results/Array.Int32.ArrayInt32WhereCount.md b/Results/Array.Int32.ArrayInt32WhereCount.md deleted file mode 100644 index 1531ab8b..00000000 --- a/Results/Array.Int32.ArrayInt32WhereCount.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.Int32.ArrayInt32WhereCount - -### Source -[ArrayInt32WhereCount.cs](../LinqBenchmarks/Array/Int32/ArrayInt32WhereCount.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|---------:|----------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 66.73 ns | 0.325 ns | 0.253 ns | 66.78 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 67.56 ns | 1.251 ns | 2.410 ns | 66.26 ns | 1.01x slower | 0.03x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 877.03 ns | 8.396 ns | 9.332 ns | 876.49 ns | 13.17x slower | 0.17x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 235.93 ns | 2.270 ns | 1.772 ns | 235.54 ns | 3.54x slower | 0.03x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 247.93 ns | 2.398 ns | 1.872 ns | 247.34 ns | 3.72x slower | 0.03x | - | - | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 346.30 ns | 6.269 ns | 4.895 ns | 346.92 ns | 5.19x slower | 0.09x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 436.61 ns | 8.430 ns | 20.836 ns | 426.40 ns | 6.55x slower | 0.31x | 0.0114 | 24 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 296.21 ns | 2.336 ns | 1.824 ns | 296.07 ns | 4.44x slower | 0.04x | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 494.07 ns | 5.380 ns | 4.200 ns | 492.76 ns | 7.40x slower | 0.08x | 0.1717 | 360 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 249.82 ns | 2.166 ns | 1.691 ns | 249.49 ns | 3.74x slower | 0.02x | 0.0305 | 64 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 87.22 ns | 1.777 ns | 3.824 ns | 85.23 ns | 1.32x slower | 0.06x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 198.37 ns | 2.173 ns | 2.416 ns | 197.66 ns | 2.98x slower | 0.04x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 86.20 ns | 1.632 ns | 2.004 ns | 85.23 ns | 1.29x slower | 0.02x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 351.15 ns | 6.444 ns | 9.840 ns | 347.93 ns | 5.35x slower | 0.18x | 0.2027 | 424 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 67.60 ns | 0.833 ns | 0.696 ns | 67.60 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 67.44 ns | 1.198 ns | 1.062 ns | 67.05 ns | 1.00x faster | 0.02x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 207.52 ns | 1.957 ns | 1.634 ns | 207.33 ns | 3.07x slower | 0.03x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 100.16 ns | 1.626 ns | 1.997 ns | 99.59 ns | 1.48x slower | 0.04x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 113.24 ns | 2.303 ns | 6.107 ns | 109.96 ns | 1.67x slower | 0.11x | - | - | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 196.08 ns | 3.208 ns | 4.391 ns | 194.22 ns | 2.90x slower | 0.06x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 274.42 ns | 1.909 ns | 1.692 ns | 274.03 ns | 4.06x slower | 0.05x | 0.0114 | 24 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 201.01 ns | 4.032 ns | 6.737 ns | 197.24 ns | 2.99x slower | 0.10x | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 538.46 ns | 3.157 ns | 2.636 ns | 538.43 ns | 7.97x slower | 0.10x | 0.1717 | 360 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 156.73 ns | 3.087 ns | 6.710 ns | 153.70 ns | 2.37x slower | 0.14x | 0.0305 | 64 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 84.70 ns | 1.168 ns | 0.912 ns | 84.55 ns | 1.25x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 89.88 ns | 1.789 ns | 2.785 ns | 88.49 ns | 1.34x slower | 0.05x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 59.90 ns | 0.457 ns | 0.381 ns | 59.79 ns | 1.13x faster | 0.02x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 163.47 ns | 3.180 ns | 7.681 ns | 159.80 ns | 2.41x slower | 0.07x | 0.2027 | 424 B | NA | diff --git a/Results/Array.Int32.ArrayInt32WhereSelect.md b/Results/Array.Int32.ArrayInt32WhereSelect.md deleted file mode 100644 index d1d810bf..00000000 --- a/Results/Array.Int32.ArrayInt32WhereSelect.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.Int32.ArrayInt32WhereSelect - -### Source -[ArrayInt32WhereSelect.cs](../LinqBenchmarks/Array/Int32/ArrayInt32WhereSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 67.84 ns | 0.608 ns | 0.475 ns | 67.77 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 67.22 ns | 0.540 ns | 0.600 ns | 67.15 ns | 1.01x faster | 0.01x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 666.28 ns | 3.903 ns | 3.259 ns | 666.15 ns | 9.82x slower | 0.07x | 0.0496 | 104 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 342.33 ns | 5.690 ns | 6.988 ns | 341.83 ns | 5.05x slower | 0.14x | 0.3171 | 664 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 887.78 ns | 12.605 ns | 9.841 ns | 886.13 ns | 13.09x slower | 0.18x | 0.4120 | 864 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 486.89 ns | 9.609 ns | 17.810 ns | 481.51 ns | 7.25x slower | 0.32x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,305.65 ns | 23.746 ns | 19.829 ns | 1,313.76 ns | 19.26x slower | 0.36x | 4.1485 | 8682 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 436.58 ns | 8.682 ns | 19.239 ns | 426.16 ns | 6.50x slower | 0.32x | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,589.82 ns | 10.832 ns | 13.303 ns | 1,588.15 ns | 23.46x slower | 0.20x | 0.3510 | 736 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 337.63 ns | 5.620 ns | 6.902 ns | 335.30 ns | 4.96x slower | 0.10x | 0.0305 | 64 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 193.20 ns | 1.278 ns | 1.420 ns | 192.96 ns | 2.85x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 310.91 ns | 3.040 ns | 2.374 ns | 310.21 ns | 4.58x slower | 0.04x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 218.17 ns | 4.390 ns | 4.312 ns | 216.17 ns | 3.23x slower | 0.08x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 391.83 ns | 7.862 ns | 18.532 ns | 382.36 ns | 5.92x slower | 0.34x | 0.2027 | 424 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 68.76 ns | 0.939 ns | 0.879 ns | 68.54 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 68.00 ns | 0.529 ns | 0.469 ns | 67.97 ns | 1.01x faster | 0.01x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 236.98 ns | 1.686 ns | 1.494 ns | 236.55 ns | 3.45x slower | 0.05x | 0.0496 | 104 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 184.27 ns | 1.822 ns | 1.615 ns | 183.70 ns | 2.68x slower | 0.04x | 0.3171 | 664 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 571.87 ns | 11.263 ns | 20.020 ns | 561.37 ns | 8.33x slower | 0.20x | 0.4129 | 864 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 275.24 ns | 3.925 ns | 3.065 ns | 274.39 ns | 3.99x slower | 0.07x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 989.94 ns | 17.311 ns | 24.267 ns | 985.91 ns | 14.47x slower | 0.54x | 4.1485 | 8681 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 295.09 ns | 3.302 ns | 2.927 ns | 295.22 ns | 4.29x slower | 0.06x | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,231.21 ns | 16.423 ns | 19.550 ns | 1,225.17 ns | 17.96x slower | 0.43x | 0.3510 | 736 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 259.79 ns | 1.649 ns | 1.377 ns | 259.77 ns | 3.77x slower | 0.05x | 0.0305 | 64 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 175.71 ns | 3.096 ns | 2.417 ns | 174.93 ns | 2.55x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 199.81 ns | 3.809 ns | 3.741 ns | 198.33 ns | 2.91x slower | 0.08x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 177.02 ns | 2.049 ns | 1.711 ns | 176.18 ns | 2.57x slower | 0.04x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 204.85 ns | 4.013 ns | 10.501 ns | 198.75 ns | 2.98x slower | 0.15x | 0.2027 | 424 B | NA | diff --git a/Results/Array.Int32.ArrayInt32WhereSelectToArray.md b/Results/Array.Int32.ArrayInt32WhereSelectToArray.md deleted file mode 100644 index 1ea5634e..00000000 --- a/Results/Array.Int32.ArrayInt32WhereSelectToArray.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.Int32.ArrayInt32WhereSelectToArray - -### Source -[ArrayInt32WhereSelectToArray.cs](../LinqBenchmarks/Array/Int32/ArrayInt32WhereSelectToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|----------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 269.5 ns | 4.08 ns | 6.10 ns | 267.6 ns | baseline | | 0.4244 | 888 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 266.9 ns | 1.88 ns | 1.57 ns | 266.5 ns | 1.01x faster | 0.02x | 0.4244 | 888 B | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 512.3 ns | 4.05 ns | 3.38 ns | 510.8 ns | 1.90x slower | 0.05x | 0.3786 | 792 B | 1.12x less | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 415.2 ns | 8.36 ns | 7.41 ns | 413.7 ns | 1.54x slower | 0.05x | 0.3171 | 664 B | 1.34x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 506.9 ns | 6.32 ns | 7.02 ns | 506.6 ns | 1.87x slower | 0.05x | 0.3977 | 832 B | 1.07x less | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 700.9 ns | 12.73 ns | 10.63 ns | 701.7 ns | 2.60x slower | 0.08x | 0.4082 | 856 B | 1.04x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,135.6 ns | 56.81 ns | 162.99 ns | 1,035.1 ns | 4.01x slower | 0.42x | 4.1313 | 8650 B | 9.74x more | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 557.7 ns | 9.43 ns | 10.86 ns | 554.0 ns | 2.06x slower | 0.07x | 0.4244 | 888 B | 1.00x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 913.6 ns | 11.50 ns | 9.60 ns | 910.5 ns | 3.39x slower | 0.10x | 0.6695 | 1400 B | 1.58x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 516.4 ns | 9.63 ns | 17.12 ns | 508.3 ns | 1.93x slower | 0.09x | 0.1602 | 336 B | 2.64x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 289.9 ns | 2.04 ns | 1.71 ns | 289.9 ns | 1.08x slower | 0.03x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 607.3 ns | 11.54 ns | 30.61 ns | 592.1 ns | 2.26x slower | 0.13x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 353.0 ns | 6.95 ns | 8.28 ns | 349.9 ns | 1.30x slower | 0.04x | 0.1144 | 240 B | 3.70x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 329.5 ns | 3.67 ns | 3.07 ns | 328.4 ns | 1.22x slower | 0.03x | 0.2027 | 424 B | 2.09x less | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 237.8 ns | 2.53 ns | 2.24 ns | 237.0 ns | baseline | | 0.4244 | 888 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 244.8 ns | 3.03 ns | 2.83 ns | 243.9 ns | 1.03x slower | 0.01x | 0.4244 | 888 B | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 290.8 ns | 2.97 ns | 2.48 ns | 289.7 ns | 1.22x slower | 0.01x | 0.3786 | 792 B | 1.12x less | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 192.2 ns | 1.54 ns | 1.45 ns | 191.5 ns | 1.24x faster | 0.02x | 0.3171 | 664 B | 1.34x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 250.9 ns | 1.97 ns | 1.74 ns | 250.6 ns | 1.06x slower | 0.01x | 0.3977 | 832 B | 1.07x less | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 392.2 ns | 8.12 ns | 22.91 ns | 380.5 ns | 1.65x slower | 0.07x | 0.4091 | 856 B | 1.04x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 902.7 ns | 7.62 ns | 7.13 ns | 900.6 ns | 3.80x slower | 0.04x | 4.1313 | 8649 B | 9.74x more | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 360.3 ns | 6.55 ns | 15.93 ns | 352.7 ns | 1.53x slower | 0.09x | 0.4244 | 888 B | 1.00x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 925.4 ns | 16.26 ns | 14.42 ns | 919.3 ns | 3.89x slower | 0.06x | 0.6695 | 1400 B | 1.58x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 398.0 ns | 9.91 ns | 28.58 ns | 382.1 ns | 1.71x slower | 0.15x | 0.1602 | 336 B | 2.64x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 304.4 ns | 5.79 ns | 14.94 ns | 298.2 ns | 1.30x slower | 0.08x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 398.5 ns | 5.95 ns | 5.56 ns | 398.2 ns | 1.68x slower | 0.03x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 306.8 ns | 1.47 ns | 1.15 ns | 306.7 ns | 1.29x slower | 0.01x | 0.1144 | 240 B | 3.70x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 179.9 ns | 3.51 ns | 5.76 ns | 178.4 ns | 1.31x faster | 0.06x | 0.2027 | 424 B | 2.09x less | diff --git a/Results/Array.Int32.ArrayInt32WhereSelectToList.md b/Results/Array.Int32.ArrayInt32WhereSelectToList.md deleted file mode 100644 index b97a6b8a..00000000 --- a/Results/Array.Int32.ArrayInt32WhereSelectToList.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.Int32.ArrayInt32WhereSelectToList - -### Source -[ArrayInt32WhereSelectToList.cs](../LinqBenchmarks/Array/Int32/ArrayInt32WhereSelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|---------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 241.6 ns | 1.46 ns | 1.37 ns | 241.2 ns | baseline | | 0.3095 | 648 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 242.6 ns | 2.28 ns | 2.02 ns | 242.4 ns | 1.00x slower | 0.01x | 0.3095 | 648 B | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 471.8 ns | 3.44 ns | 2.68 ns | 471.1 ns | 1.95x slower | 0.02x | 0.3595 | 752 B | 1.16x more | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 361.2 ns | 7.19 ns | 6.72 ns | 359.6 ns | 1.49x slower | 0.03x | 0.4473 | 936 B | 1.44x more | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 576.3 ns | 7.30 ns | 11.36 ns | 571.1 ns | 2.39x slower | 0.06x | 0.6113 | 1280 B | 1.98x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 673.0 ns | 13.22 ns | 14.70 ns | 666.8 ns | 2.79x slower | 0.07x | 0.3090 | 648 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,161.6 ns | 34.11 ns | 96.77 ns | 1,111.6 ns | 4.82x slower | 0.34x | 4.2629 | 8922 B | 13.77x more | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 526.9 ns | 10.57 ns | 25.72 ns | 514.7 ns | 2.21x slower | 0.15x | 0.3090 | 648 B | 1.00x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,247.5 ns | 12.39 ns | 9.68 ns | 1,242.8 ns | 5.16x slower | 0.05x | 0.5684 | 1192 B | 1.84x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 529.3 ns | 10.37 ns | 8.09 ns | 528.7 ns | 2.19x slower | 0.04x | 0.1755 | 368 B | 1.76x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 297.5 ns | 5.97 ns | 7.76 ns | 295.0 ns | 1.24x slower | 0.04x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 666.7 ns | 4.01 ns | 3.94 ns | 665.1 ns | 2.76x slower | 0.02x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 353.2 ns | 3.13 ns | 2.44 ns | 352.9 ns | 1.46x slower | 0.01x | 0.1297 | 272 B | 2.38x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 379.9 ns | 4.83 ns | 4.74 ns | 378.7 ns | 1.57x slower | 0.02x | 0.4206 | 880 B | 1.36x more | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 235.8 ns | 2.15 ns | 2.01 ns | 235.9 ns | baseline | | 0.3095 | 648 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 235.7 ns | 2.31 ns | 1.93 ns | 235.1 ns | 1.00x faster | 0.01x | 0.3095 | 648 B | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 325.7 ns | 5.12 ns | 4.00 ns | 324.5 ns | 1.38x slower | 0.02x | 0.3595 | 752 B | 1.16x more | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 228.1 ns | 1.91 ns | 1.87 ns | 227.6 ns | 1.03x faster | 0.01x | 0.4475 | 936 B | 1.44x more | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 349.8 ns | 2.08 ns | 1.62 ns | 350.0 ns | 1.48x slower | 0.01x | 0.6118 | 1280 B | 1.98x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 363.6 ns | 7.64 ns | 21.55 ns | 352.3 ns | 1.54x slower | 0.09x | 0.3095 | 648 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 957.3 ns | 7.64 ns | 7.15 ns | 955.5 ns | 4.06x slower | 0.03x | 4.2629 | 8921 B | 13.77x more | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 333.4 ns | 4.45 ns | 3.94 ns | 331.8 ns | 1.41x slower | 0.02x | 0.3090 | 648 B | 1.00x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,135.0 ns | 11.59 ns | 10.27 ns | 1,131.0 ns | 4.81x slower | 0.05x | 0.5684 | 1192 B | 1.84x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 408.9 ns | 8.47 ns | 23.89 ns | 395.1 ns | 1.74x slower | 0.11x | 0.1760 | 368 B | 1.76x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 282.4 ns | 4.02 ns | 4.47 ns | 280.0 ns | 1.20x slower | 0.02x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 419.7 ns | 12.12 ns | 35.73 ns | 397.7 ns | 1.77x slower | 0.14x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 320.1 ns | 2.57 ns | 2.15 ns | 319.6 ns | 1.36x slower | 0.01x | 0.1297 | 272 B | 2.38x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 239.4 ns | 5.60 ns | 15.98 ns | 230.3 ns | 1.02x slower | 0.06x | 0.4206 | 880 B | 1.36x more | diff --git a/Results/Array.ValueType.ArrayValueTypeContains.md b/Results/Array.ValueType.ArrayValueTypeContains.md deleted file mode 100644 index dccabcbd..00000000 --- a/Results/Array.ValueType.ArrayValueTypeContains.md +++ /dev/null @@ -1,53 +0,0 @@ -## Array.ValueType.ArrayValueTypeContains - -### Source -[ArrayValueTypeContains.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeContains.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|---------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 437.93 ns | 2.873 ns | 2.688 ns | 438.47 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 448.51 ns | 5.384 ns | 5.529 ns | 446.44 ns | 1.03x slower | 0.01x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 220.74 ns | 1.566 ns | 1.307 ns | 220.45 ns | 1.98x faster | 0.02x | - | - | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 229.34 ns | 4.626 ns | 11.084 ns | 223.55 ns | 1.90x faster | 0.10x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 227.99 ns | 4.580 ns | 11.321 ns | 222.40 ns | 1.92x faster | 0.09x | - | - | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 224.79 ns | 4.094 ns | 4.714 ns | 222.88 ns | 1.94x faster | 0.04x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 435.16 ns | 4.857 ns | 4.544 ns | 433.49 ns | 1.01x faster | 0.01x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 376.43 ns | 7.320 ns | 8.990 ns | 373.17 ns | 1.16x faster | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 208.27 ns | 2.847 ns | 2.377 ns | 207.62 ns | 2.10x faster | 0.03x | 0.0153 | 32 B | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 490.22 ns | 8.626 ns | 7.203 ns | 487.84 ns | 1.12x slower | 0.02x | 0.0305 | 64 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 189.47 ns | 2.446 ns | 2.288 ns | 188.62 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 198.25 ns | 3.900 ns | 7.326 ns | 195.24 ns | 1.04x slower | 0.04x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 53.52 ns | 0.242 ns | 0.215 ns | 53.46 ns | 3.54x faster | 0.05x | - | - | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 50.68 ns | 0.516 ns | 0.431 ns | 50.45 ns | 3.74x faster | 0.06x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 52.90 ns | 1.089 ns | 1.417 ns | 52.34 ns | 3.61x faster | 0.10x | - | - | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 57.26 ns | 1.099 ns | 2.953 ns | 55.61 ns | 3.27x faster | 0.20x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 297.53 ns | 1.728 ns | 1.443 ns | 297.19 ns | 1.57x slower | 0.02x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 236.60 ns | 1.331 ns | 1.245 ns | 236.34 ns | 1.25x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 61.13 ns | 0.484 ns | 0.429 ns | 61.03 ns | 3.10x faster | 0.05x | 0.0153 | 32 B | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 286.55 ns | 4.973 ns | 4.152 ns | 285.83 ns | 1.51x slower | 0.03x | 0.0305 | 64 B | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeDistinct.md b/Results/Array.ValueType.ArrayValueTypeDistinct.md deleted file mode 100644 index 1439facf..00000000 --- a/Results/Array.ValueType.ArrayValueTypeDistinct.md +++ /dev/null @@ -1,49 +0,0 @@ -## Array.ValueType.ArrayValueTypeDistinct - -### Source -[ArrayValueTypeDistinct.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeDistinct.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Duplicates | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----------- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|--------:|----------:|--------------:| -| ForLoop | .NET 6 | .NET 6.0 | 4 | 100 | 12.686 μs | 0.2478 μs | 0.2652 μs | 12.616 μs | baseline | | 12.8174 | 26976 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 4 | 100 | 13.525 μs | 0.2527 μs | 0.5601 μs | 13.326 μs | 1.07x slower | 0.03x | 12.8174 | 26976 B | 1.000x more | -| Linq | .NET 6 | .NET 6.0 | 4 | 100 | 15.941 μs | 0.1191 μs | 0.1169 μs | 15.927 μs | 1.26x slower | 0.03x | 12.8174 | 26848 B | 1.005x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 4 | 100 | 14.909 μs | 0.2736 μs | 0.2425 μs | 14.793 μs | 1.18x slower | 0.03x | 22.5830 | 47544 B | 1.762x more | -| LinqAF | .NET 6 | .NET 6.0 | 4 | 100 | 40.588 μs | 0.4204 μs | 0.3510 μs | 40.490 μs | 3.20x slower | 0.08x | 20.9351 | 43904 B | 1.628x more | -| StructLinq | .NET 6 | .NET 6.0 | 4 | 100 | 14.282 μs | 0.1068 μs | 0.0947 μs | 14.258 μs | 1.13x slower | 0.03x | - | 56 B | 481.714x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 4 | 100 | 4.731 μs | 0.0355 μs | 0.0296 μs | 4.713 μs | 2.69x faster | 0.07x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 4 | 100 | 19.253 μs | 0.0906 μs | 0.0757 μs | 19.205 μs | 1.52x slower | 0.04x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 4 | 100 | 10.966 μs | 0.2167 μs | 0.3038 μs | 10.899 μs | baseline | | 12.8937 | 26976 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 4 | 100 | 11.247 μs | 0.2240 μs | 0.5237 μs | 11.119 μs | 1.05x slower | 0.05x | 12.8937 | 26976 B | 1.000x more | -| Linq | .NET 8 | .NET 8.0 | 4 | 100 | 14.176 μs | 0.3568 μs | 1.0521 μs | 13.663 μs | 1.32x slower | 0.12x | 12.8174 | 26848 B | 1.005x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 4 | 100 | 18.908 μs | 0.7676 μs | 2.1271 μs | 19.728 μs | 1.50x slower | 0.22x | 22.7051 | 47544 B | 1.762x more | -| LinqAF | .NET 8 | .NET 8.0 | 4 | 100 | 34.178 μs | 0.3931 μs | 0.3283 μs | 34.183 μs | 3.14x slower | 0.11x | 21.8506 | 45720 B | 1.695x more | -| StructLinq | .NET 8 | .NET 8.0 | 4 | 100 | 11.349 μs | 0.0986 μs | 0.0770 μs | 11.326 μs | 1.04x slower | 0.03x | 0.0153 | 56 B | 481.714x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 4 | 100 | 3.693 μs | 0.0532 μs | 0.0710 μs | 3.677 μs | 2.97x faster | 0.11x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 4 | 100 | 11.970 μs | 0.2332 μs | 0.3419 μs | 11.856 μs | 1.09x slower | 0.05x | - | - | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeSelect.md b/Results/Array.ValueType.ArrayValueTypeSelect.md deleted file mode 100644 index b4ae92fa..00000000 --- a/Results/Array.ValueType.ArrayValueTypeSelect.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.ValueType.ArrayValueTypeSelect - -### Source -[ArrayValueTypeSelect.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1,562.2 ns | 21.57 ns | 18.01 ns | 1,555.5 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1,644.6 ns | 32.73 ns | 30.62 ns | 1,629.2 ns | 1.05x slower | 0.03x | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 2,190.4 ns | 25.11 ns | 19.61 ns | 2,183.6 ns | 1.40x slower | 0.02x | 0.0496 | - | 104 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 2,366.0 ns | 38.75 ns | 50.39 ns | 2,346.9 ns | 1.53x slower | 0.04x | 3.0670 | - | 6424 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 3,305.6 ns | 38.40 ns | 32.06 ns | 3,307.2 ns | 2.12x slower | 0.03x | 3.0823 | - | 6456 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2,675.4 ns | 44.81 ns | 39.72 ns | 2,663.3 ns | 1.71x slower | 0.04x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 9,256.4 ns | 165.77 ns | 248.11 ns | 9,199.1 ns | 5.93x slower | 0.20x | 50.0031 | 16.6626 | 137767 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 2,141.6 ns | 8.12 ns | 7.20 ns | 2,141.5 ns | 1.37x slower | 0.02x | - | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 11,579.8 ns | 218.09 ns | 251.15 ns | 11,515.0 ns | 7.47x slower | 0.21x | 0.3815 | - | 824 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,792.3 ns | 31.70 ns | 29.65 ns | 1,782.1 ns | 1.15x slower | 0.02x | 0.0153 | - | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,743.3 ns | 30.44 ns | 42.68 ns | 1,720.2 ns | 1.12x slower | 0.04x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,896.7 ns | 7.37 ns | 5.76 ns | 1,897.5 ns | 1.21x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,749.3 ns | 11.40 ns | 8.90 ns | 1,749.8 ns | 1.12x slower | 0.01x | - | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 2,387.9 ns | 11.59 ns | 9.68 ns | 2,387.7 ns | 1.53x slower | 0.02x | 3.0670 | - | 6424 B | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 761.9 ns | 14.71 ns | 20.13 ns | 754.1 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 814.8 ns | 16.25 ns | 37.00 ns | 816.2 ns | 1.11x slower | 0.04x | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,789.3 ns | 17.20 ns | 13.43 ns | 1,784.3 ns | 2.32x slower | 0.07x | 0.0496 | - | 104 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 2,172.2 ns | 39.28 ns | 48.24 ns | 2,156.3 ns | 2.85x slower | 0.07x | 3.0670 | - | 6424 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 2,243.8 ns | 34.28 ns | 30.39 ns | 2,233.9 ns | 2.92x slower | 0.09x | 3.0861 | - | 6456 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1,926.5 ns | 5.85 ns | 5.47 ns | 1,925.0 ns | 2.51x slower | 0.07x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 9,515.0 ns | 125.77 ns | 105.02 ns | 9,483.7 ns | 12.35x slower | 0.40x | 64.4836 | 0.0305 | 137754 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 1,820.4 ns | 6.22 ns | 5.82 ns | 1,818.5 ns | 2.37x slower | 0.06x | - | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 9,622.2 ns | 62.79 ns | 49.02 ns | 9,624.2 ns | 12.46x slower | 0.36x | 0.3815 | - | 824 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1,710.7 ns | 33.71 ns | 70.37 ns | 1,686.9 ns | 2.29x slower | 0.12x | 0.0153 | - | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 806.5 ns | 14.08 ns | 18.30 ns | 796.4 ns | 1.06x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 1,530.1 ns | 28.06 ns | 34.46 ns | 1,510.8 ns | 2.01x slower | 0.07x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 849.6 ns | 11.91 ns | 10.56 ns | 845.3 ns | 1.10x slower | 0.03x | - | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 2,101.1 ns | 21.02 ns | 17.56 ns | 2,097.9 ns | 2.73x slower | 0.07x | 3.0670 | - | 6424 B | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeSelectSum.md b/Results/Array.ValueType.ArrayValueTypeSelectSum.md deleted file mode 100644 index 9fddc057..00000000 --- a/Results/Array.ValueType.ArrayValueTypeSelectSum.md +++ /dev/null @@ -1,59 +0,0 @@ -## Array.ValueType.ArrayValueTypeSelectSum - -### Source -[ArrayValueTypeSelectSum.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeSelectSum.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|----------:|----------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 65.68 ns | 0.477 ns | 0.399 ns | 65.53 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 145.92 ns | 0.876 ns | 0.731 ns | 145.99 ns | 2.22x slower | 0.02x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 637.24 ns | 3.763 ns | 2.938 ns | 636.18 ns | 9.71x slower | 0.10x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 322.77 ns | 6.397 ns | 11.857 ns | 316.52 ns | 4.99x slower | 0.20x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 208.00 ns | 4.620 ns | 13.030 ns | 201.34 ns | 3.19x slower | 0.23x | - | - | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 666.77 ns | 11.867 ns | 21.699 ns | 657.71 ns | 10.08x slower | 0.38x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 489.42 ns | 3.594 ns | 2.806 ns | 489.33 ns | 7.45x slower | 0.06x | 0.0114 | 24 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 558.47 ns | 4.776 ns | 3.988 ns | 557.00 ns | 8.50x slower | 0.07x | 0.1717 | 360 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 203.45 ns | 2.186 ns | 1.826 ns | 202.58 ns | 3.10x slower | 0.04x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 77.93 ns | 1.403 ns | 1.171 ns | 77.46 ns | 1.19x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 455.54 ns | 9.121 ns | 19.240 ns | 444.99 ns | 6.93x slower | 0.29x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 312.30 ns | 5.622 ns | 4.983 ns | 310.10 ns | 4.74x slower | 0.08x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 724.78 ns | 14.470 ns | 33.824 ns | 710.66 ns | 11.24x slower | 0.63x | 0.2174 | 456 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 43.01 ns | 0.844 ns | 1.068 ns | 42.67 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 134.93 ns | 1.009 ns | 0.944 ns | 134.60 ns | 3.13x slower | 0.10x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 294.45 ns | 3.576 ns | 2.792 ns | 294.12 ns | 6.84x slower | 0.22x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 135.56 ns | 2.415 ns | 1.885 ns | 135.07 ns | 3.15x slower | 0.10x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 110.58 ns | 0.756 ns | 0.590 ns | 110.51 ns | 2.57x slower | 0.08x | - | - | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 271.75 ns | 5.435 ns | 14.029 ns | 274.71 ns | 6.08x slower | 0.28x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 291.89 ns | 1.219 ns | 0.952 ns | 291.77 ns | 6.78x slower | 0.21x | 0.0114 | 24 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 555.37 ns | 7.415 ns | 8.242 ns | 551.98 ns | 12.91x slower | 0.27x | 0.1717 | 360 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 178.58 ns | 0.743 ns | 0.580 ns | 178.51 ns | 4.15x slower | 0.13x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 48.25 ns | 0.296 ns | 0.263 ns | 48.21 ns | 1.12x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 126.59 ns | 2.512 ns | 3.603 ns | 125.09 ns | 2.95x slower | 0.09x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 83.83 ns | 1.700 ns | 3.193 ns | 84.18 ns | 1.91x slower | 0.07x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 255.58 ns | 1.375 ns | 1.286 ns | 254.95 ns | 5.93x slower | 0.18x | 0.2027 | 424 B | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeSkipTakeSelect.md b/Results/Array.ValueType.ArrayValueTypeSkipTakeSelect.md deleted file mode 100644 index 9b7ff2be..00000000 --- a/Results/Array.ValueType.ArrayValueTypeSkipTakeSelect.md +++ /dev/null @@ -1,57 +0,0 @@ -## Array.ValueType.ArrayValueTypeSkipTakeSelect - -### Source -[ArrayValueTypeSkipTakeSelect.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeSkipTakeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 1,569.7 ns | 30.44 ns | 31.26 ns | 1,555.5 ns | baseline | | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 2,611.2 ns | 23.62 ns | 19.72 ns | 2,605.6 ns | 1.66x slower | 0.04x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 3,838.1 ns | 34.70 ns | 32.46 ns | 3,826.1 ns | 2.44x slower | 0.05x | 9.2010 | - | 19272 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 3,172.0 ns | 49.34 ns | 43.74 ns | 3,160.6 ns | 2.02x slower | 0.06x | 6.1493 | - | 12880 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 8,981.3 ns | 176.75 ns | 165.33 ns | 8,919.0 ns | 5.72x slower | 0.19x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 12,101.8 ns | 239.90 ns | 531.59 ns | 11,875.4 ns | 7.83x slower | 0.49x | 50.0031 | 16.6626 | 137767 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 2,854.2 ns | 55.75 ns | 142.91 ns | 2,768.8 ns | 1.92x slower | 0.11x | - | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 17,338.5 ns | 276.52 ns | 646.36 ns | 17,043.2 ns | 11.07x slower | 0.53x | 0.5493 | - | 1152 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,863.1 ns | 36.46 ns | 58.88 ns | 1,826.0 ns | 1.19x slower | 0.04x | 0.0458 | - | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 1,739.3 ns | 10.80 ns | 10.11 ns | 1,737.0 ns | 1.11x slower | 0.03x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 2,660.9 ns | 17.91 ns | 13.98 ns | 2,656.9 ns | 1.69x slower | 0.04x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 1,728.2 ns | 10.70 ns | 8.36 ns | 1,726.1 ns | 1.10x slower | 0.03x | - | - | - | NA | -| | | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 754.6 ns | 4.64 ns | 3.62 ns | 753.7 ns | baseline | | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 2,093.4 ns | 38.74 ns | 47.57 ns | 2,077.7 ns | 2.77x slower | 0.07x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 3,205.1 ns | 63.58 ns | 157.15 ns | 3,157.3 ns | 4.05x slower | 0.05x | 9.2010 | - | 19272 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 2,938.7 ns | 29.24 ns | 22.83 ns | 2,941.6 ns | 3.89x slower | 0.03x | 6.1531 | - | 12880 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 4,309.2 ns | 31.20 ns | 24.36 ns | 4,302.6 ns | 5.71x slower | 0.05x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 11,054.2 ns | 214.42 ns | 179.05 ns | 11,035.1 ns | 14.65x slower | 0.23x | 64.3311 | 0.1831 | 137755 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,970.8 ns | 18.43 ns | 14.39 ns | 1,965.6 ns | 2.61x slower | 0.02x | - | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 14,759.3 ns | 276.95 ns | 709.94 ns | 14,403.4 ns | 19.54x slower | 0.82x | 0.5493 | - | 1152 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,730.3 ns | 34.61 ns | 68.32 ns | 1,747.6 ns | 2.39x slower | 0.08x | 0.0458 | - | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 803.9 ns | 14.54 ns | 12.89 ns | 797.7 ns | 1.06x slower | 0.01x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,614.2 ns | 19.51 ns | 16.30 ns | 1,606.5 ns | 2.14x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 834.7 ns | 16.24 ns | 15.95 ns | 826.6 ns | 1.11x slower | 0.02x | - | - | - | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeSkipTakeWhere.md b/Results/Array.ValueType.ArrayValueTypeSkipTakeWhere.md deleted file mode 100644 index ca4db84a..00000000 --- a/Results/Array.ValueType.ArrayValueTypeSkipTakeWhere.md +++ /dev/null @@ -1,57 +0,0 @@ -## Array.ValueType.ArrayValueTypeSkipTakeWhere - -### Source -[ArrayValueTypeSkipTakeWhere.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeSkipTakeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|----------:|------------:|------------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 441.3 ns | 7.72 ns | 6.85 ns | 438.8 ns | baseline | | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 2,041.6 ns | 11.91 ns | 11.14 ns | 2,039.9 ns | 4.63x slower | 0.08x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 2,059.7 ns | 24.67 ns | 23.08 ns | 2,061.3 ns | 4.67x slower | 0.10x | 10.7803 | - | 22560 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 1,754.9 ns | 34.39 ns | 33.78 ns | 1,747.4 ns | 3.99x slower | 0.10x | 4.6501 | - | 9744 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 7,072.2 ns | 139.72 ns | 312.51 ns | 7,029.3 ns | 15.43x slower | 0.73x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 9,399.0 ns | 181.37 ns | 208.86 ns | 9,295.9 ns | 21.30x slower | 0.30x | 50.0031 | 12.4969 | 134631 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 711.9 ns | 5.74 ns | 6.37 ns | 709.9 ns | 1.61x slower | 0.03x | - | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 8,649.6 ns | 154.56 ns | 120.67 ns | 8,594.1 ns | 19.57x slower | 0.46x | 0.5493 | - | 1152 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 628.4 ns | 2.10 ns | 1.75 ns | 628.0 ns | 1.42x slower | 0.02x | 0.0458 | - | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 516.9 ns | 2.47 ns | 2.19 ns | 517.0 ns | 1.17x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,052.0 ns | 20.64 ns | 45.30 ns | 1,030.9 ns | 2.40x slower | 0.13x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 815.7 ns | 5.76 ns | 4.81 ns | 815.8 ns | 1.85x slower | 0.03x | - | - | - | NA | -| | | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 410.8 ns | 2.11 ns | 1.65 ns | 410.2 ns | baseline | | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,185.7 ns | 16.65 ns | 20.45 ns | 1,181.9 ns | 2.90x slower | 0.07x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 2,028.8 ns | 27.12 ns | 22.64 ns | 2,030.4 ns | 4.94x slower | 0.06x | 10.7803 | - | 22560 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 1,375.8 ns | 26.89 ns | 68.44 ns | 1,343.4 ns | 3.49x slower | 0.21x | 4.6501 | - | 9744 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 2,977.2 ns | 23.56 ns | 20.88 ns | 2,976.3 ns | 7.24x slower | 0.05x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 12,651.1 ns | 573.18 ns | 1,559.39 ns | 13,325.9 ns | 31.76x slower | 3.31x | 50.9033 | 16.1743 | 134652 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 549.0 ns | 2.75 ns | 2.30 ns | 548.6 ns | 1.34x slower | 0.01x | - | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 6,928.6 ns | 62.23 ns | 58.21 ns | 6,904.6 ns | 16.90x slower | 0.14x | 0.5493 | - | 1152 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 511.4 ns | 1.99 ns | 1.66 ns | 511.0 ns | 1.25x slower | 0.00x | 0.0458 | - | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 484.9 ns | 6.54 ns | 5.79 ns | 482.6 ns | 1.18x slower | 0.01x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 522.0 ns | 6.43 ns | 5.02 ns | 520.4 ns | 1.27x slower | 0.01x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 537.3 ns | 3.08 ns | 2.40 ns | 537.5 ns | 1.31x slower | 0.01x | - | - | - | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeWhere.md b/Results/Array.ValueType.ArrayValueTypeWhere.md deleted file mode 100644 index a9af2f7c..00000000 --- a/Results/Array.ValueType.ArrayValueTypeWhere.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.ValueType.ArrayValueTypeWhere - -### Source -[ArrayValueTypeWhere.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|---------:|-----------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 450.7 ns | 7.90 ns | 8.11 ns | 448.1 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 539.5 ns | 3.46 ns | 3.07 ns | 538.3 ns | 1.19x slower | 0.02x | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,032.7 ns | 8.67 ns | 6.77 ns | 1,031.8 ns | 2.28x slower | 0.05x | 0.0496 | - | 104 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1,339.0 ns | 25.71 ns | 72.08 ns | 1,304.0 ns | 2.97x slower | 0.14x | 4.7264 | - | 9904 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 2,037.9 ns | 24.84 ns | 20.74 ns | 2,032.1 ns | 4.51x slower | 0.11x | 3.0174 | - | 6328 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,125.0 ns | 17.06 ns | 15.96 ns | 1,120.4 ns | 2.49x slower | 0.06x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7,655.7 ns | 87.55 ns | 81.90 ns | 7,657.2 ns | 16.96x slower | 0.38x | 52.0782 | 10.4065 | 134824 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 748.3 ns | 10.62 ns | 11.80 ns | 744.4 ns | 1.66x slower | 0.03x | - | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,934.6 ns | 12.91 ns | 10.78 ns | 1,933.2 ns | 4.28x slower | 0.09x | 0.3929 | - | 824 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 618.8 ns | 5.46 ns | 4.56 ns | 617.8 ns | 1.37x slower | 0.03x | 0.0153 | - | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 541.7 ns | 2.61 ns | 2.44 ns | 541.3 ns | 1.20x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,416.0 ns | 27.89 ns | 36.26 ns | 1,398.8 ns | 3.16x slower | 0.06x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 849.8 ns | 16.64 ns | 19.16 ns | 841.2 ns | 1.88x slower | 0.05x | - | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 2,303.9 ns | 43.54 ns | 93.74 ns | 2,252.3 ns | 5.08x slower | 0.19x | 3.0670 | - | 6424 B | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 421.5 ns | 5.92 ns | 6.07 ns | 419.1 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 483.8 ns | 1.96 ns | 1.74 ns | 483.9 ns | 1.15x slower | 0.02x | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 631.5 ns | 3.14 ns | 2.79 ns | 631.6 ns | 1.50x slower | 0.03x | 0.0496 | - | 104 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,191.7 ns | 23.70 ns | 35.47 ns | 1,186.3 ns | 2.87x slower | 0.10x | 4.7264 | - | 9904 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 1,481.0 ns | 28.13 ns | 68.47 ns | 1,460.0 ns | 3.61x slower | 0.16x | 3.0193 | - | 6328 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 626.9 ns | 5.42 ns | 4.23 ns | 626.0 ns | 1.48x slower | 0.03x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 6,864.4 ns | 108.25 ns | 84.52 ns | 6,831.9 ns | 16.25x slower | 0.28x | 62.4237 | 0.0610 | 134810 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 591.9 ns | 5.29 ns | 4.69 ns | 591.1 ns | 1.40x slower | 0.02x | - | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,571.9 ns | 13.44 ns | 13.20 ns | 1,569.8 ns | 3.73x slower | 0.07x | 0.3929 | - | 824 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 513.3 ns | 4.64 ns | 3.62 ns | 512.1 ns | 1.21x slower | 0.02x | 0.0153 | - | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 504.3 ns | 7.97 ns | 6.65 ns | 502.0 ns | 1.19x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 567.6 ns | 4.33 ns | 3.38 ns | 566.4 ns | 1.34x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 545.7 ns | 3.55 ns | 2.97 ns | 545.4 ns | 1.29x slower | 0.02x | - | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1,464.1 ns | 28.31 ns | 33.70 ns | 1,453.0 ns | 3.48x slower | 0.11x | 3.0670 | - | 6424 B | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeWhereCount.md b/Results/Array.ValueType.ArrayValueTypeWhereCount.md deleted file mode 100644 index 7f335f2f..00000000 --- a/Results/Array.ValueType.ArrayValueTypeWhereCount.md +++ /dev/null @@ -1,59 +0,0 @@ -## Array.ValueType.ArrayValueTypeWhereCount - -### Source -[ArrayValueTypeWhereCount.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeWhereCount.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|----------:|----------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 68.33 ns | 1.342 ns | 1.318 ns | 67.88 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 147.25 ns | 1.857 ns | 1.551 ns | 147.24 ns | 2.15x slower | 0.03x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 798.54 ns | 17.404 ns | 49.935 ns | 770.35 ns | 11.72x slower | 0.88x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 280.37 ns | 5.318 ns | 6.726 ns | 277.68 ns | 4.13x slower | 0.15x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 273.22 ns | 1.494 ns | 1.166 ns | 273.44 ns | 3.98x slower | 0.08x | - | - | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 668.23 ns | 12.809 ns | 34.848 ns | 653.92 ns | 9.78x slower | 0.73x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 262.61 ns | 4.891 ns | 4.804 ns | 260.81 ns | 3.84x slower | 0.08x | 0.0305 | 64 B | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 495.68 ns | 6.482 ns | 7.205 ns | 493.29 ns | 7.25x slower | 0.20x | 0.0114 | 24 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 638.87 ns | 9.202 ns | 7.684 ns | 636.67 ns | 9.32x slower | 0.16x | 0.1717 | 360 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 176.06 ns | 3.519 ns | 6.069 ns | 173.45 ns | 2.60x slower | 0.13x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 492.09 ns | 9.544 ns | 14.284 ns | 483.67 ns | 7.19x slower | 0.26x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 343.46 ns | 5.336 ns | 6.554 ns | 341.15 ns | 5.05x slower | 0.16x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 664.61 ns | 9.583 ns | 8.002 ns | 665.36 ns | 9.70x slower | 0.22x | 3.0670 | 6424 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 68.29 ns | 1.394 ns | 1.999 ns | 67.37 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 104.89 ns | 2.027 ns | 3.034 ns | 103.25 ns | 1.54x slower | 0.07x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 332.40 ns | 2.143 ns | 1.673 ns | 331.60 ns | 4.86x slower | 0.19x | 0.0153 | 32 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 108.08 ns | 0.841 ns | 1.033 ns | 107.88 ns | 1.58x slower | 0.04x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 159.87 ns | 1.696 ns | 1.503 ns | 159.32 ns | 2.34x slower | 0.08x | - | - | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 256.70 ns | 1.426 ns | 1.265 ns | 256.52 ns | 3.76x slower | 0.13x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 185.60 ns | 2.366 ns | 2.531 ns | 184.83 ns | 2.70x slower | 0.09x | 0.0305 | 64 B | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 292.52 ns | 3.157 ns | 2.465 ns | 292.27 ns | 4.28x slower | 0.16x | 0.0114 | 24 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 576.51 ns | 5.291 ns | 4.690 ns | 574.53 ns | 8.43x slower | 0.30x | 0.1717 | 360 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 151.05 ns | 2.445 ns | 2.816 ns | 149.99 ns | 2.20x slower | 0.06x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 167.27 ns | 2.311 ns | 1.930 ns | 166.79 ns | 2.45x slower | 0.10x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 98.69 ns | 2.856 ns | 8.194 ns | 94.30 ns | 1.47x slower | 0.16x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 539.39 ns | 4.762 ns | 5.293 ns | 537.47 ns | 7.87x slower | 0.30x | 3.0670 | 6424 B | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeWhereSelect.md b/Results/Array.ValueType.ArrayValueTypeWhereSelect.md deleted file mode 100644 index b0fb8672..00000000 --- a/Results/Array.ValueType.ArrayValueTypeWhereSelect.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.ValueType.ArrayValueTypeWhereSelect - -### Source -[ArrayValueTypeWhereSelect.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeWhereSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 891.5 ns | 6.17 ns | 4.82 ns | 891.3 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 956.4 ns | 18.68 ns | 16.56 ns | 949.1 ns | 1.07x slower | 0.02x | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,580.7 ns | 18.33 ns | 14.31 ns | 1,576.8 ns | 1.77x slower | 0.02x | 0.1030 | - | 216 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1,712.4 ns | 14.66 ns | 13.00 ns | 1,710.8 ns | 1.92x slower | 0.02x | 4.7264 | - | 9904 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 3,407.0 ns | 20.11 ns | 17.83 ns | 3,405.2 ns | 3.82x slower | 0.02x | 6.0196 | - | 12624 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,943.6 ns | 23.10 ns | 18.04 ns | 1,939.9 ns | 2.18x slower | 0.02x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7,896.6 ns | 129.55 ns | 114.84 ns | 7,855.0 ns | 8.85x slower | 0.13x | 52.0782 | 10.4065 | 134824 B | NA | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 1,532.2 ns | 30.66 ns | 40.92 ns | 1,544.5 ns | 1.70x slower | 0.04x | - | - | - | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 6,707.8 ns | 41.64 ns | 36.92 ns | 6,700.4 ns | 7.52x slower | 0.05x | 0.4578 | - | 976 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,172.2 ns | 9.30 ns | 8.24 ns | 1,170.9 ns | 1.31x slower | 0.01x | 0.0305 | - | 64 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,015.3 ns | 19.93 ns | 25.21 ns | 1,004.2 ns | 1.14x slower | 0.03x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,491.8 ns | 19.95 ns | 15.57 ns | 1,491.5 ns | 1.67x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,844.6 ns | 36.28 ns | 30.30 ns | 1,834.1 ns | 2.07x slower | 0.04x | - | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 2,650.0 ns | 51.64 ns | 115.49 ns | 2,599.8 ns | 3.02x slower | 0.14x | 3.0670 | - | 6424 B | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 423.2 ns | 8.47 ns | 7.92 ns | 419.8 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 466.6 ns | 9.22 ns | 13.79 ns | 459.3 ns | 1.10x slower | 0.03x | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,043.2 ns | 7.07 ns | 6.27 ns | 1,040.7 ns | 2.46x slower | 0.05x | 0.1030 | - | 216 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,646.4 ns | 17.21 ns | 18.41 ns | 1,640.9 ns | 3.89x slower | 0.10x | 4.7264 | - | 9904 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 2,831.0 ns | 26.68 ns | 20.83 ns | 2,825.8 ns | 6.67x slower | 0.12x | 6.0234 | - | 12624 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 2,152.1 ns | 33.79 ns | 28.22 ns | 2,141.7 ns | 5.08x slower | 0.13x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 7,207.2 ns | 65.08 ns | 54.34 ns | 7,187.4 ns | 17.01x slower | 0.32x | 62.4695 | 0.0229 | 134810 B | NA | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 1,155.6 ns | 12.13 ns | 9.47 ns | 1,153.1 ns | 2.72x slower | 0.06x | - | - | - | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 6,405.0 ns | 42.42 ns | 39.68 ns | 6,399.7 ns | 15.14x slower | 0.30x | 0.4578 | - | 976 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 991.8 ns | 6.96 ns | 5.43 ns | 990.5 ns | 2.34x slower | 0.04x | 0.0305 | - | 64 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 527.6 ns | 10.35 ns | 9.18 ns | 523.3 ns | 1.25x slower | 0.04x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 975.5 ns | 19.37 ns | 30.16 ns | 975.0 ns | 2.28x slower | 0.10x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 525.7 ns | 10.22 ns | 8.53 ns | 522.8 ns | 1.24x slower | 0.02x | - | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1,879.0 ns | 37.33 ns | 66.36 ns | 1,861.3 ns | 4.51x slower | 0.14x | 3.0670 | - | 6424 B | NA | diff --git a/Results/Array.ValueType.ArrayValueTypeWhereSelectToArray.md b/Results/Array.ValueType.ArrayValueTypeWhereSelectToArray.md deleted file mode 100644 index b142a2ca..00000000 --- a/Results/Array.ValueType.ArrayValueTypeWhereSelectToArray.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.ValueType.ArrayValueTypeWhereSelectToArray - -### Source -[ArrayValueTypeWhereSelectToArray.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeWhereSelectToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|-------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1,380.8 ns | 27.17 ns | 58.50 ns | 1,357.5 ns | baseline | | 5.5237 | - | 11.3 KB | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1,572.7 ns | 40.14 ns | 116.44 ns | 1,519.2 ns | 1.15x slower | 0.09x | 5.5237 | - | 11.3 KB | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,625.4 ns | 25.06 ns | 19.56 ns | 1,625.2 ns | 1.17x slower | 0.06x | 3.9291 | - | 8.03 KB | 1.41x less | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1,241.7 ns | 9.18 ns | 7.17 ns | 1,240.2 ns | 1.12x faster | 0.07x | 4.7264 | - | 9.67 KB | 1.17x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 2,378.7 ns | 45.17 ns | 83.72 ns | 2,353.0 ns | 1.72x slower | 0.09x | 6.0043 | - | 12.3 KB | 1.09x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2,447.8 ns | 35.08 ns | 64.15 ns | 2,433.4 ns | 1.77x slower | 0.10x | 5.5084 | - | 11.27 KB | 1.00x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7,755.1 ns | 193.77 ns | 555.95 ns | 7,558.6 ns | 5.63x slower | 0.46x | 52.0859 | 10.4141 | 131.63 KB | 11.65x more | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 2,086.3 ns | 37.54 ns | 41.72 ns | 2,072.1 ns | 1.52x slower | 0.08x | 5.5237 | - | 11.3 KB | 1.00x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 7,024.9 ns | 52.51 ns | 41.00 ns | 7,021.2 ns | 5.06x slower | 0.28x | 5.7678 | - | 11.8 KB | 1.04x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,420.6 ns | 28.32 ns | 36.82 ns | 1,419.6 ns | 1.03x slower | 0.06x | 1.7052 | - | 3.49 KB | 3.23x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,038.9 ns | 8.44 ns | 7.48 ns | 1,037.3 ns | 1.33x faster | 0.08x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,702.6 ns | 35.77 ns | 104.92 ns | 1,651.1 ns | 1.23x slower | 0.08x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,330.0 ns | 26.50 ns | 42.79 ns | 1,316.4 ns | 1.04x faster | 0.04x | 1.6575 | - | 3.4 KB | 3.32x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 1,040.9 ns | 15.01 ns | 11.72 ns | 1,040.8 ns | 1.34x faster | 0.09x | 3.0670 | - | 6.27 KB | 1.80x less | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 1,268.9 ns | 15.30 ns | 12.78 ns | 1,265.0 ns | baseline | | 5.5237 | - | 11.3 KB | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 1,305.5 ns | 14.78 ns | 16.42 ns | 1,303.1 ns | 1.03x slower | 0.02x | 5.5237 | - | 11.3 KB | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,185.1 ns | 23.37 ns | 29.55 ns | 1,188.2 ns | 1.05x faster | 0.02x | 3.9291 | - | 8.03 KB | 1.41x less | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,195.1 ns | 12.50 ns | 11.08 ns | 1,190.8 ns | 1.06x faster | 0.01x | 4.7264 | - | 9.67 KB | 1.17x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 1,973.3 ns | 35.08 ns | 31.09 ns | 1,960.6 ns | 1.56x slower | 0.02x | 6.0043 | - | 12.3 KB | 1.09x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1,779.4 ns | 34.19 ns | 95.88 ns | 1,743.1 ns | 1.42x slower | 0.10x | 5.5084 | - | 11.27 KB | 1.00x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 7,372.5 ns | 83.33 ns | 77.95 ns | 7,335.0 ns | 5.81x slower | 0.06x | 52.0782 | 10.4065 | 131.62 KB | 11.65x more | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 2,014.8 ns | 15.01 ns | 13.31 ns | 2,009.5 ns | 1.59x slower | 0.02x | 5.5237 | - | 11.3 KB | 1.00x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 6,745.1 ns | 128.11 ns | 301.97 ns | 6,604.0 ns | 5.41x slower | 0.19x | 5.7678 | - | 11.8 KB | 1.04x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1,168.6 ns | 11.29 ns | 9.43 ns | 1,164.5 ns | 1.09x faster | 0.01x | 1.7052 | - | 3.49 KB | 3.23x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 937.6 ns | 5.91 ns | 5.24 ns | 936.5 ns | 1.35x faster | 0.01x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 1,050.5 ns | 20.59 ns | 28.87 ns | 1,039.2 ns | 1.21x faster | 0.04x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 981.3 ns | 18.24 ns | 18.73 ns | 972.3 ns | 1.29x faster | 0.02x | 1.6575 | - | 3.4 KB | 3.32x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 919.1 ns | 8.16 ns | 7.23 ns | 918.6 ns | 1.38x faster | 0.01x | 3.0670 | - | 6.27 KB | 1.80x less | diff --git a/Results/Array.ValueType.ArrayValueTypeWhereSelectToList.md b/Results/Array.ValueType.ArrayValueTypeWhereSelectToList.md deleted file mode 100644 index 399c3467..00000000 --- a/Results/Array.ValueType.ArrayValueTypeWhereSelectToList.md +++ /dev/null @@ -1,61 +0,0 @@ -## Array.ValueType.ArrayValueTypeWhereSelectToList - -### Source -[ArrayValueTypeWhereSelectToList.cs](../LinqBenchmarks/Array/ValueType/ArrayValueTypeWhereSelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|-------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1,183.9 ns | 15.29 ns | 20.41 ns | 1,189.1 ns | baseline | | 3.8605 | - | 7.9 KB | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1,282.6 ns | 24.74 ns | 20.66 ns | 1,281.1 ns | 1.08x slower | 0.02x | 3.8605 | - | 7.9 KB | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,503.0 ns | 12.87 ns | 12.04 ns | 1,504.1 ns | 1.27x slower | 0.02x | 3.9673 | - | 8.11 KB | 1.03x more | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1,567.1 ns | 37.96 ns | 110.14 ns | 1,512.6 ns | 1.32x slower | 0.08x | 6.4087 | - | 13.1 KB | 1.66x more | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 2,839.7 ns | 63.11 ns | 181.07 ns | 2,745.4 ns | 2.37x slower | 0.15x | 9.0332 | - | 18.48 KB | 2.34x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2,330.8 ns | 42.14 ns | 93.39 ns | 2,295.3 ns | 1.98x slower | 0.08x | 3.8605 | - | 7.9 KB | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7,571.1 ns | 193.64 ns | 549.33 ns | 7,276.5 ns | 6.60x slower | 0.52x | 64.5142 | - | 135.07 KB | 17.10x more | -| SpanLinq | .NET 6 | .NET 6.0 | 100 | 1,828.0 ns | 36.02 ns | 60.19 ns | 1,802.5 ns | 1.55x slower | 0.05x | 3.8605 | - | 7.9 KB | 1.00x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 6,970.8 ns | 136.20 ns | 379.67 ns | 6,787.7 ns | 5.96x slower | 0.32x | 4.1199 | - | 8.43 KB | 1.07x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,527.0 ns | 32.19 ns | 91.83 ns | 1,480.8 ns | 1.30x slower | 0.08x | 1.7223 | - | 3.52 KB | 2.24x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,148.4 ns | 22.96 ns | 55.45 ns | 1,123.3 ns | 1.03x faster | 0.06x | 1.6766 | - | 3.43 KB | 2.30x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,633.2 ns | 30.17 ns | 62.98 ns | 1,600.8 ns | 1.38x slower | 0.06x | 1.6766 | - | 3.43 KB | 2.30x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,301.0 ns | 10.86 ns | 8.48 ns | 1,297.0 ns | 1.09x slower | 0.02x | 1.6766 | - | 3.43 KB | 2.30x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 1,580.6 ns | 36.17 ns | 103.76 ns | 1,526.1 ns | 1.34x slower | 0.10x | 6.1531 | - | 12.58 KB | 1.59x more | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 1,044.8 ns | 20.74 ns | 46.39 ns | 1,028.1 ns | baseline | | 3.8605 | - | 7.9 KB | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 1,095.8 ns | 18.57 ns | 17.37 ns | 1,090.9 ns | 1.02x slower | 0.04x | 3.8605 | - | 7.9 KB | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,166.4 ns | 15.20 ns | 12.69 ns | 1,168.7 ns | 1.08x slower | 0.05x | 3.9673 | - | 8.11 KB | 1.03x more | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,574.6 ns | 64.13 ns | 187.07 ns | 1,472.1 ns | 1.55x slower | 0.22x | 6.4087 | - | 13.1 KB | 1.66x more | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 2,407.6 ns | 45.95 ns | 106.50 ns | 2,369.1 ns | 2.31x slower | 0.12x | 9.0332 | - | 18.48 KB | 2.34x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1,482.9 ns | 30.62 ns | 86.86 ns | 1,457.7 ns | 1.43x slower | 0.12x | 3.8605 | - | 7.9 KB | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 7,866.9 ns | 155.67 ns | 351.37 ns | 7,776.4 ns | 7.55x slower | 0.43x | 53.3295 | 13.3209 | 135.05 KB | 17.10x more | -| SpanLinq | .NET 8 | .NET 8.0 | 100 | 1,458.0 ns | 30.97 ns | 89.37 ns | 1,420.1 ns | 1.39x slower | 0.10x | 3.8605 | - | 7.9 KB | 1.00x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 6,512.3 ns | 124.32 ns | 127.66 ns | 6,442.9 ns | 6.09x slower | 0.27x | 4.1199 | - | 8.43 KB | 1.07x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1,090.8 ns | 8.34 ns | 6.97 ns | 1,089.9 ns | 1.01x slower | 0.05x | 1.7223 | - | 3.52 KB | 2.24x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 986.6 ns | 6.35 ns | 4.95 ns | 986.8 ns | 1.10x faster | 0.05x | 1.6766 | - | 3.43 KB | 2.30x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 1,066.4 ns | 11.64 ns | 10.31 ns | 1,066.7 ns | 1.01x faster | 0.05x | 1.6766 | - | 3.43 KB | 2.30x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 1,075.2 ns | 15.39 ns | 12.85 ns | 1,076.9 ns | 1.01x faster | 0.04x | 1.6766 | - | 3.43 KB | 2.30x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1,412.6 ns | 28.25 ns | 59.59 ns | 1,394.5 ns | 1.35x slower | 0.09x | 6.1531 | - | 12.58 KB | 1.59x more | diff --git a/Results/Enumerable.FatReferenceType.EnumerableFatReferenceTypeAny.md b/Results/Enumerable.FatReferenceType.EnumerableFatReferenceTypeAny.md deleted file mode 100644 index 07d7e85f..00000000 --- a/Results/Enumerable.FatReferenceType.EnumerableFatReferenceTypeAny.md +++ /dev/null @@ -1,45 +0,0 @@ -## Enumerable.FatReferenceType.EnumerableFatReferenceTypeAny - -### Source -[EnumerableFatReferenceTypeAny.cs](../LinqBenchmarks/Enumerable/FatReferenceType/EnumerableFatReferenceTypeAny.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 14.072 ns | 0.1100 ns | 0.0975 ns | 14.071 ns | baseline | | 0.0229 | 48 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 23.727 ns | 0.1742 ns | 0.1545 ns | 23.688 ns | 1.69x slower | 0.02x | 0.0229 | 48 B | 1.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 33.699 ns | 0.3296 ns | 0.2752 ns | 33.549 ns | 2.40x slower | 0.03x | 0.0229 | 48 B | 1.00x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 17.490 ns | 0.3403 ns | 0.4303 ns | 17.342 ns | 1.25x slower | 0.04x | 0.0344 | 72 B | 1.50x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 17.505 ns | 0.2791 ns | 0.2331 ns | 17.475 ns | 1.24x slower | 0.02x | 0.0344 | 72 B | 1.50x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 21.975 ns | 0.7361 ns | 2.1588 ns | 20.656 ns | 1.58x slower | 0.18x | 0.0229 | 48 B | 1.00x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 9.500 ns | 0.2810 ns | 0.7972 ns | 9.114 ns | baseline | | 0.0229 | 48 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 24.209 ns | 0.5938 ns | 1.6845 ns | 23.310 ns | 2.57x slower | 0.28x | 0.0229 | 48 B | 1.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 25.909 ns | 0.2898 ns | 0.2420 ns | 25.868 ns | 2.73x slower | 0.19x | 0.0229 | 48 B | 1.00x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 14.409 ns | 0.1745 ns | 0.1457 ns | 14.405 ns | 1.52x slower | 0.10x | 0.0344 | 72 B | 1.50x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 14.167 ns | 0.1315 ns | 0.1165 ns | 14.115 ns | 1.50x slower | 0.10x | 0.0344 | 72 B | 1.50x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 18.766 ns | 0.2441 ns | 0.2164 ns | 18.747 ns | 1.99x slower | 0.12x | 0.0229 | 48 B | 1.00x more | diff --git a/Results/Enumerable.FatReferenceType.EnumerableFatReferenceTypeFirstOrDefault.md b/Results/Enumerable.FatReferenceType.EnumerableFatReferenceTypeFirstOrDefault.md deleted file mode 100644 index e7746497..00000000 --- a/Results/Enumerable.FatReferenceType.EnumerableFatReferenceTypeFirstOrDefault.md +++ /dev/null @@ -1,45 +0,0 @@ -## Enumerable.FatReferenceType.EnumerableFatReferenceTypeFirstOrDefault - -### Source -[EnumerableFatReferenceTypeFirstOrDefault.cs](../LinqBenchmarks/Enumerable/FatReferenceType/EnumerableFatReferenceTypeFirstOrDefault.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 14.878 ns | 0.3060 ns | 0.3005 ns | 14.777 ns | baseline | | 0.0229 | 48 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 26.805 ns | 0.2642 ns | 0.2342 ns | 26.753 ns | 1.80x slower | 0.04x | 0.0229 | 48 B | 1.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 38.261 ns | 0.4017 ns | 0.3354 ns | 38.188 ns | 2.56x slower | 0.05x | 0.0229 | 48 B | 1.00x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 19.993 ns | 0.4212 ns | 1.0332 ns | 19.552 ns | 1.35x slower | 0.08x | 0.0344 | 72 B | 1.50x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 13.755 ns | 0.1519 ns | 0.1347 ns | 13.769 ns | 1.08x faster | 0.02x | 0.0229 | 48 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 37.000 ns | 0.7775 ns | 2.1801 ns | 36.005 ns | 2.53x slower | 0.20x | 0.0344 | 72 B | 1.50x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 9.272 ns | 0.0609 ns | 0.0540 ns | 9.257 ns | baseline | | 0.0229 | 48 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 20.147 ns | 0.3869 ns | 0.4139 ns | 19.989 ns | 2.18x slower | 0.05x | 0.0229 | 48 B | 1.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 31.235 ns | 0.3653 ns | 0.2852 ns | 31.192 ns | 3.37x slower | 0.04x | 0.0229 | 48 B | 1.00x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 15.171 ns | 0.3150 ns | 0.2947 ns | 15.040 ns | 1.64x slower | 0.03x | 0.0344 | 72 B | 1.50x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 10.387 ns | 0.1156 ns | 0.0965 ns | 10.372 ns | 1.12x slower | 0.01x | 0.0229 | 48 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 33.449 ns | 0.6909 ns | 0.6463 ns | 33.064 ns | 3.61x slower | 0.08x | 0.0344 | 72 B | 1.50x more | diff --git a/Results/Enumerable.Int32.EnumerableInt32Contains.md b/Results/Enumerable.Int32.EnumerableInt32Contains.md deleted file mode 100644 index dff2b9fb..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32Contains.md +++ /dev/null @@ -1,45 +0,0 @@ -## Enumerable.Int32.EnumerableInt32Contains - -### Source -[EnumerableInt32Contains.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32Contains.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |---------:|---------:|---------:|---------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 468.5 ns | 12.95 ns | 38.19 ns | 445.9 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 479.8 ns | 9.19 ns | 17.71 ns | 472.0 ns | 1.03x slower | 0.08x | 0.0191 | 40 B | 1.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 542.0 ns | 4.17 ns | 3.48 ns | 540.8 ns | 1.16x slower | 0.08x | 0.0191 | 40 B | 1.00x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 484.6 ns | 8.78 ns | 11.10 ns | 481.0 ns | 1.03x slower | 0.08x | 0.0305 | 64 B | 1.60x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 462.4 ns | 4.53 ns | 5.39 ns | 461.2 ns | 1.03x faster | 0.08x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 551.5 ns | 5.74 ns | 5.08 ns | 551.7 ns | 1.19x slower | 0.08x | 0.0191 | 40 B | 1.00x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 204.7 ns | 4.15 ns | 10.64 ns | 199.5 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 179.8 ns | 1.81 ns | 1.86 ns | 179.5 ns | 1.15x faster | 0.06x | 0.0191 | 40 B | 1.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 318.8 ns | 6.32 ns | 9.65 ns | 314.0 ns | 1.56x slower | 0.09x | 0.0191 | 40 B | 1.00x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 264.4 ns | 2.03 ns | 1.59 ns | 263.8 ns | 1.27x slower | 0.08x | 0.0305 | 64 B | 1.60x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 253.5 ns | 1.64 ns | 1.28 ns | 253.5 ns | 1.22x slower | 0.07x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 231.6 ns | 1.47 ns | 1.38 ns | 231.4 ns | 1.12x slower | 0.06x | 0.0191 | 40 B | 1.00x more | diff --git a/Results/Enumerable.Int32.EnumerableInt32Distinct.md b/Results/Enumerable.Int32.EnumerableInt32Distinct.md deleted file mode 100644 index 582229d2..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32Distinct.md +++ /dev/null @@ -1,45 +0,0 @@ -## Enumerable.Int32.EnumerableInt32Distinct - -### Source -[EnumerableInt32Distinct.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32Distinct.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|----------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 815.3 ns | 8.56 ns | 7.14 ns | 815.9 ns | baseline | | 0.0992 | 208 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 906.5 ns | 11.11 ns | 9.28 ns | 902.1 ns | 1.11x slower | 0.01x | 0.1602 | 336 B | 1.62x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,841.0 ns | 53.17 ns | 155.94 ns | 1,747.1 ns | 2.23x slower | 0.19x | 1.2531 | 2624 B | 12.62x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 974.4 ns | 23.35 ns | 68.13 ns | 936.2 ns | 1.18x slower | 0.06x | 0.0305 | 64 B | 3.25x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 952.1 ns | 6.84 ns | 6.07 ns | 949.6 ns | 1.17x slower | 0.01x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 999.4 ns | 9.86 ns | 7.70 ns | 998.5 ns | 1.22x slower | 0.01x | 0.0191 | 40 B | 5.20x less | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 616.1 ns | 12.31 ns | 17.66 ns | 609.4 ns | baseline | | 0.0992 | 208 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 730.7 ns | 6.40 ns | 5.00 ns | 729.4 ns | 1.19x slower | 0.03x | 0.1602 | 336 B | 1.62x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1,172.2 ns | 18.89 ns | 29.97 ns | 1,176.3 ns | 1.90x slower | 0.08x | 1.2531 | 2624 B | 12.62x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 685.5 ns | 13.16 ns | 24.07 ns | 674.2 ns | 1.12x slower | 0.06x | 0.0305 | 64 B | 3.25x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 582.7 ns | 11.60 ns | 31.95 ns | 566.2 ns | 1.05x faster | 0.06x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 678.4 ns | 11.90 ns | 16.68 ns | 670.8 ns | 1.10x slower | 0.03x | 0.0191 | 40 B | 5.20x less | diff --git a/Results/Enumerable.Int32.EnumerableInt32Select.md b/Results/Enumerable.Int32.EnumerableInt32Select.md deleted file mode 100644 index f448a440..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32Select.md +++ /dev/null @@ -1,51 +0,0 @@ -## Enumerable.Int32.EnumerableInt32Select - -### Source -[EnumerableInt32Select.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32Select.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|----------:|-----------:|--------------:|--------:|-------:|----------:|-------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 443.6 ns | 3.17 ns | 2.47 ns | 443.5 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,020.9 ns | 12.82 ns | 13.16 ns | 1,014.9 ns | 2.31x slower | 0.04x | 0.0458 | 96 B | 2.40x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 604.0 ns | 2.26 ns | 1.76 ns | 604.0 ns | 1.36x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,978.1 ns | 37.65 ns | 53.99 ns | 1,967.9 ns | 4.47x slower | 0.09x | 4.2534 | 8906 B | 222.65x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,808.9 ns | 17.78 ns | 15.76 ns | 1,803.4 ns | 4.08x slower | 0.04x | 0.2823 | 592 B | 14.80x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 671.8 ns | 5.71 ns | 4.46 ns | 670.4 ns | 1.51x slower | 0.01x | 0.0305 | 64 B | 1.60x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 474.9 ns | 11.47 ns | 33.83 ns | 451.7 ns | 1.09x slower | 0.07x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 622.5 ns | 3.26 ns | 2.72 ns | 622.0 ns | 1.40x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 494.0 ns | 2.91 ns | 2.58 ns | 493.5 ns | 1.11x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 154.8 ns | 2.66 ns | 4.44 ns | 152.1 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 362.6 ns | 6.78 ns | 13.23 ns | 355.9 ns | 2.36x slower | 0.13x | 0.0458 | 96 B | 2.40x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 307.2 ns | 3.67 ns | 4.08 ns | 306.3 ns | 1.98x slower | 0.05x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,635.7 ns | 36.17 ns | 101.41 ns | 1,585.6 ns | 10.62x slower | 0.75x | 4.2553 | 8905 B | 222.62x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,177.6 ns | 19.93 ns | 27.28 ns | 1,166.6 ns | 7.61x slower | 0.24x | 0.2823 | 592 B | 14.80x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 256.5 ns | 1.56 ns | 1.30 ns | 256.3 ns | 1.64x slower | 0.05x | 0.0305 | 64 B | 1.60x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 279.7 ns | 1.71 ns | 1.52 ns | 279.2 ns | 1.79x slower | 0.06x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 187.1 ns | 3.79 ns | 10.99 ns | 180.7 ns | 1.21x slower | 0.07x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 190.7 ns | 3.79 ns | 8.07 ns | 186.3 ns | 1.23x slower | 0.07x | 0.0191 | 40 B | 1.00x more | diff --git a/Results/Enumerable.Int32.EnumerableInt32SkipTakeSelect.md b/Results/Enumerable.Int32.EnumerableInt32SkipTakeSelect.md deleted file mode 100644 index 5b89c1f4..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32SkipTakeSelect.md +++ /dev/null @@ -1,49 +0,0 @@ -## Enumerable.Int32.EnumerableInt32SkipTakeSelect - -### Source -[EnumerableInt32SkipTakeSelect.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32SkipTakeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 4.183 μs | 0.0462 μs | 0.0386 μs | 4.166 μs | baseline | | 0.0992 | 208 B | | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 4.393 μs | 0.0197 μs | 0.0153 μs | 4.398 μs | 1.05x slower | 0.01x | 0.0153 | 40 B | 5.20x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 6.269 μs | 0.0383 μs | 0.0359 μs | 6.275 μs | 1.50x slower | 0.02x | 4.2419 | 8906 B | 42.82x more | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 10.745 μs | 0.1872 μs | 0.2080 μs | 10.667 μs | 2.57x slower | 0.05x | 0.4272 | 920 B | 4.42x more | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 3.901 μs | 0.0737 μs | 0.0905 μs | 3.866 μs | 1.06x faster | 0.03x | 0.0610 | 128 B | 1.62x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 3.663 μs | 0.0428 μs | 0.0334 μs | 3.655 μs | 1.14x faster | 0.01x | 0.0153 | 40 B | 5.20x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 3.298 μs | 0.0606 μs | 0.0622 μs | 3.274 μs | 1.27x faster | 0.03x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 3.244 μs | 0.0635 μs | 0.1726 μs | 3.152 μs | 1.31x faster | 0.05x | 0.0191 | 40 B | 5.20x less | -| | | | | | | | | | | | | | | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 2.890 μs | 0.0223 μs | 0.0186 μs | 2.883 μs | baseline | | 0.0992 | 208 B | | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 3.198 μs | 0.0636 μs | 0.1314 μs | 3.130 μs | 1.13x slower | 0.05x | 0.0191 | 40 B | 5.20x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 6.264 μs | 0.1700 μs | 0.4932 μs | 5.990 μs | 2.16x slower | 0.15x | 4.2496 | 8905 B | 42.81x more | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 6.279 μs | 0.1487 μs | 0.4242 μs | 6.071 μs | 2.20x slower | 0.16x | 0.4349 | 920 B | 4.42x more | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 2.351 μs | 0.0180 μs | 0.0150 μs | 2.348 μs | 1.23x faster | 0.01x | 0.0610 | 128 B | 1.62x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 2.494 μs | 0.0143 μs | 0.0119 μs | 2.492 μs | 1.16x faster | 0.01x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 1.871 μs | 0.0160 μs | 0.0142 μs | 1.868 μs | 1.54x faster | 0.01x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 1.888 μs | 0.0312 μs | 0.0260 μs | 1.880 μs | 1.53x faster | 0.02x | 0.0191 | 40 B | 5.20x less | diff --git a/Results/Enumerable.Int32.EnumerableInt32SkipTakeWhere.md b/Results/Enumerable.Int32.EnumerableInt32SkipTakeWhere.md deleted file mode 100644 index 0cc06220..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32SkipTakeWhere.md +++ /dev/null @@ -1,49 +0,0 @@ -## Enumerable.Int32.EnumerableInt32SkipTakeWhere - -### Source -[EnumerableInt32SkipTakeWhere.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32SkipTakeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 4.177 μs | 0.0179 μs | 0.0149 μs | 4.182 μs | baseline | | 0.0992 | 208 B | | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 4.587 μs | 0.0210 μs | 0.0175 μs | 4.586 μs | 1.10x slower | 0.00x | 0.0153 | 40 B | 5.20x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 6.660 μs | 0.1733 μs | 0.4916 μs | 6.428 μs | 1.64x slower | 0.12x | 4.2496 | 8906 B | 42.82x more | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 10.476 μs | 0.2030 μs | 0.2172 μs | 10.427 μs | 2.51x slower | 0.06x | 0.4272 | 920 B | 4.42x more | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 4.081 μs | 0.0401 μs | 0.0394 μs | 4.070 μs | 1.03x faster | 0.01x | 0.0610 | 128 B | 1.62x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 3.676 μs | 0.0351 μs | 0.0293 μs | 3.674 μs | 1.14x faster | 0.01x | 0.0153 | 40 B | 5.20x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 3.638 μs | 0.0857 μs | 0.2474 μs | 3.494 μs | 1.14x faster | 0.09x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 3.831 μs | 0.0520 μs | 0.0406 μs | 3.819 μs | 1.09x faster | 0.01x | 0.0153 | 40 B | 5.20x less | -| | | | | | | | | | | | | | | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 3.050 μs | 0.0176 μs | 0.0165 μs | 3.045 μs | baseline | | 0.0992 | 208 B | | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 2.149 μs | 0.0260 μs | 0.0217 μs | 2.139 μs | 1.42x faster | 0.02x | 0.0191 | 40 B | 5.20x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 5.793 μs | 0.0717 μs | 0.0559 μs | 5.800 μs | 1.90x slower | 0.02x | 4.2419 | 8905 B | 42.81x more | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 6.133 μs | 0.0423 μs | 0.0330 μs | 6.129 μs | 2.01x slower | 0.01x | 0.4349 | 920 B | 4.42x more | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 2.982 μs | 0.0576 μs | 0.1110 μs | 2.931 μs | 1.02x faster | 0.04x | 0.0610 | 128 B | 1.62x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 2.709 μs | 0.0529 μs | 0.1080 μs | 2.656 μs | 1.13x faster | 0.04x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 2.684 μs | 0.0980 μs | 0.2795 μs | 2.516 μs | 1.01x slower | 0.10x | 0.0191 | 40 B | 5.20x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 1.860 μs | 0.0140 μs | 0.0124 μs | 1.861 μs | 1.64x faster | 0.01x | 0.0191 | 40 B | 5.20x less | diff --git a/Results/Enumerable.Int32.EnumerableInt32Sum.md b/Results/Enumerable.Int32.EnumerableInt32Sum.md deleted file mode 100644 index 499983b4..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32Sum.md +++ /dev/null @@ -1,49 +0,0 @@ -## Enumerable.Int32.EnumerableInt32Sum - -### Source -[EnumerableInt32Sum.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32Sum.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |---------:|---------:|---------:|---------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 442.9 ns | 3.86 ns | 3.23 ns | 442.3 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 449.6 ns | 9.01 ns | 19.97 ns | 439.6 ns | 1.02x slower | 0.05x | 0.0191 | 40 B | 1.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 473.6 ns | 3.85 ns | 3.42 ns | 472.2 ns | 1.07x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 800.9 ns | 8.11 ns | 6.77 ns | 797.1 ns | 1.81x slower | 0.02x | 0.0305 | 64 B | 1.60x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 720.8 ns | 8.97 ns | 7.01 ns | 719.2 ns | 1.63x slower | 0.02x | 0.1183 | 248 B | 6.20x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 453.7 ns | 4.18 ns | 3.49 ns | 452.0 ns | 1.02x slower | 0.01x | 0.0305 | 64 B | 1.60x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 465.3 ns | 12.62 ns | 36.61 ns | 443.1 ns | 1.06x slower | 0.08x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 455.0 ns | 10.40 ns | 29.67 ns | 438.5 ns | 1.03x slower | 0.07x | 0.0191 | 40 B | 1.00x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 150.0 ns | 1.37 ns | 1.21 ns | 149.6 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 204.2 ns | 4.06 ns | 6.55 ns | 200.9 ns | 1.36x slower | 0.04x | 0.0191 | 40 B | 1.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 245.4 ns | 4.49 ns | 11.43 ns | 238.3 ns | 1.63x slower | 0.09x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 640.6 ns | 9.89 ns | 7.72 ns | 638.6 ns | 4.27x slower | 0.06x | 0.0305 | 64 B | 1.60x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 394.8 ns | 4.78 ns | 5.50 ns | 393.2 ns | 2.64x slower | 0.04x | 0.1183 | 248 B | 6.20x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 241.5 ns | 1.68 ns | 1.49 ns | 241.0 ns | 1.61x slower | 0.01x | 0.0305 | 64 B | 1.60x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 230.4 ns | 1.58 ns | 1.23 ns | 230.4 ns | 1.53x slower | 0.02x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 230.3 ns | 4.57 ns | 6.56 ns | 227.0 ns | 1.54x slower | 0.05x | 0.0191 | 40 B | 1.00x more | diff --git a/Results/Enumerable.Int32.EnumerableInt32Where.md b/Results/Enumerable.Int32.EnumerableInt32Where.md deleted file mode 100644 index 94f291a5..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32Where.md +++ /dev/null @@ -1,49 +0,0 @@ -## Enumerable.Int32.EnumerableInt32Where - -### Source -[EnumerableInt32Where.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32Where.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|----------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| LinqAF | .NET 6 | .NET 6.0 | 100 | 839.2 ns | 10.61 ns | 8.28 ns | 837.3 ns | 1.29x faster | 0.02x | 0.0191 | 40 B | 2.40x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,972.4 ns | 20.38 ns | 25.03 ns | 1,970.3 ns | 1.82x slower | 0.03x | 4.2534 | 8906 B | 92.77x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,935.6 ns | 53.95 ns | 157.37 ns | 1,846.9 ns | 1.82x slower | 0.17x | 0.2823 | 592 B | 6.17x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 767.5 ns | 15.28 ns | 17.59 ns | 761.0 ns | 1.41x faster | 0.04x | 0.0305 | 64 B | 1.50x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 617.0 ns | 10.31 ns | 25.69 ns | 606.1 ns | 1.74x faster | 0.08x | 0.0191 | 40 B | 2.40x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 806.8 ns | 12.81 ns | 13.16 ns | 803.0 ns | 1.34x faster | 0.02x | 0.0191 | 40 B | 2.40x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 609.0 ns | 5.43 ns | 4.54 ns | 607.4 ns | 1.78x faster | 0.01x | 0.0191 | 40 B | 2.40x less | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,083.2 ns | 5.28 ns | 4.68 ns | 1,082.6 ns | baseline | | 0.0458 | 96 B | | -| | | | | | | | | | | | | | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 336.8 ns | 6.38 ns | 5.32 ns | 335.3 ns | 1.26x faster | 0.10x | 0.0191 | 40 B | 2.40x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,505.6 ns | 21.46 ns | 17.92 ns | 1,497.5 ns | 3.56x slower | 0.25x | 4.2534 | 8905 B | 92.76x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,156.2 ns | 9.45 ns | 7.89 ns | 1,155.7 ns | 2.73x slower | 0.18x | 0.2823 | 592 B | 6.17x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 282.3 ns | 2.98 ns | 2.33 ns | 281.2 ns | 1.51x faster | 0.10x | 0.0305 | 64 B | 1.50x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 315.2 ns | 5.14 ns | 6.11 ns | 313.3 ns | 1.36x faster | 0.09x | 0.0191 | 40 B | 2.40x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 280.0 ns | 3.74 ns | 3.12 ns | 278.6 ns | 1.52x faster | 0.12x | 0.0191 | 40 B | 2.40x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 218.2 ns | 4.40 ns | 11.03 ns | 212.7 ns | 1.93x faster | 0.13x | 0.0191 | 40 B | 2.40x less | -| Linq | .NET 8 | .NET 8.0 | 100 | 420.0 ns | 7.93 ns | 22.12 ns | 407.1 ns | baseline | | 0.0458 | 96 B | | diff --git a/Results/Enumerable.Int32.EnumerableInt32WhereCount.md b/Results/Enumerable.Int32.EnumerableInt32WhereCount.md deleted file mode 100644 index b17f23cb..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32WhereCount.md +++ /dev/null @@ -1,51 +0,0 @@ -## Enumerable.Int32.EnumerableInt32WhereCount - -### Source -[EnumerableInt32WhereCount.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32WhereCount.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |---------:|---------:|---------:|---------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 443.1 ns | 4.10 ns | 3.42 ns | 441.7 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 595.3 ns | 3.15 ns | 2.46 ns | 595.0 ns | 1.34x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 692.5 ns | 14.98 ns | 42.75 ns | 670.5 ns | 1.59x slower | 0.13x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 850.9 ns | 20.01 ns | 57.40 ns | 818.1 ns | 1.86x slower | 0.05x | 0.0305 | 64 B | 1.60x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 965.5 ns | 9.95 ns | 11.06 ns | 963.7 ns | 2.19x slower | 0.03x | 0.1907 | 400 B | 10.00x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 652.8 ns | 4.34 ns | 3.39 ns | 652.2 ns | 1.47x slower | 0.01x | 0.0458 | 96 B | 2.40x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 495.1 ns | 2.70 ns | 2.39 ns | 495.2 ns | 1.12x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 548.3 ns | 2.89 ns | 2.56 ns | 548.0 ns | 1.24x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 520.2 ns | 4.11 ns | 3.64 ns | 519.5 ns | 1.17x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 224.0 ns | 1.71 ns | 1.52 ns | 223.2 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 251.8 ns | 1.85 ns | 1.54 ns | 251.4 ns | 1.12x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 338.0 ns | 2.96 ns | 2.31 ns | 336.9 ns | 1.51x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 656.9 ns | 13.06 ns | 29.21 ns | 642.9 ns | 2.98x slower | 0.15x | 0.0305 | 64 B | 1.60x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 701.2 ns | 13.60 ns | 13.97 ns | 697.8 ns | 3.14x slower | 0.07x | 0.1907 | 400 B | 10.00x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 330.9 ns | 1.98 ns | 1.65 ns | 330.0 ns | 1.48x slower | 0.01x | 0.0458 | 96 B | 2.40x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 205.2 ns | 4.16 ns | 9.55 ns | 199.5 ns | 1.09x faster | 0.05x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 211.0 ns | 3.02 ns | 3.59 ns | 210.1 ns | 1.06x faster | 0.02x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 254.1 ns | 3.24 ns | 2.87 ns | 253.8 ns | 1.13x slower | 0.01x | 0.0191 | 40 B | 1.00x more | diff --git a/Results/Enumerable.Int32.EnumerableInt32WhereSelect.md b/Results/Enumerable.Int32.EnumerableInt32WhereSelect.md deleted file mode 100644 index a2463be8..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32WhereSelect.md +++ /dev/null @@ -1,51 +0,0 @@ -## Enumerable.Int32.EnumerableInt32WhereSelect - -### Source -[EnumerableInt32WhereSelect.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32WhereSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|---------:|-----------:|-------------:|--------:|-------:|----------:|-------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 445.3 ns | 5.62 ns | 4.69 ns | 445.7 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,165.4 ns | 18.14 ns | 14.16 ns | 1,163.5 ns | 2.62x slower | 0.04x | 0.0763 | 160 B | 4.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,102.9 ns | 7.58 ns | 6.33 ns | 1,100.2 ns | 2.48x slower | 0.03x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,920.9 ns | 29.00 ns | 24.22 ns | 1,925.6 ns | 4.31x slower | 0.08x | 4.2534 | 8906 B | 222.65x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 2,069.6 ns | 15.47 ns | 13.72 ns | 2,066.9 ns | 4.64x slower | 0.06x | 0.3548 | 744 B | 18.60x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 985.1 ns | 13.13 ns | 10.97 ns | 980.0 ns | 2.21x slower | 0.03x | 0.0458 | 96 B | 2.40x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 636.9 ns | 4.34 ns | 3.38 ns | 637.5 ns | 1.43x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 860.4 ns | 5.26 ns | 4.39 ns | 859.6 ns | 1.93x slower | 0.02x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 621.0 ns | 11.83 ns | 10.49 ns | 616.5 ns | 1.40x slower | 0.02x | 0.0191 | 40 B | 1.00x more | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 223.5 ns | 1.67 ns | 1.86 ns | 223.0 ns | baseline | | 0.0191 | 40 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 454.6 ns | 3.57 ns | 3.16 ns | 454.1 ns | 2.03x slower | 0.02x | 0.0763 | 160 B | 4.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 393.8 ns | 7.52 ns | 13.37 ns | 387.7 ns | 1.76x slower | 0.06x | 0.0191 | 40 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,517.4 ns | 20.18 ns | 17.89 ns | 1,519.2 ns | 6.78x slower | 0.12x | 4.2534 | 8905 B | 222.62x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,514.3 ns | 34.52 ns | 99.03 ns | 1,463.6 ns | 6.94x slower | 0.51x | 0.3548 | 744 B | 18.60x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 403.1 ns | 7.58 ns | 9.86 ns | 399.2 ns | 1.81x slower | 0.05x | 0.0458 | 96 B | 2.40x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 275.0 ns | 1.60 ns | 1.42 ns | 275.0 ns | 1.23x slower | 0.01x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 361.3 ns | 7.08 ns | 5.91 ns | 359.4 ns | 1.61x slower | 0.03x | 0.0191 | 40 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 260.8 ns | 1.38 ns | 1.36 ns | 260.4 ns | 1.17x slower | 0.01x | 0.0191 | 40 B | 1.00x more | diff --git a/Results/Enumerable.Int32.EnumerableInt32WhereSelectToArray.md b/Results/Enumerable.Int32.EnumerableInt32WhereSelectToArray.md deleted file mode 100644 index 0b6f3f1b..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32WhereSelectToArray.md +++ /dev/null @@ -1,51 +0,0 @@ -## Enumerable.Int32.EnumerableInt32WhereSelectToArray - -### Source -[EnumerableInt32WhereSelectToArray.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32WhereSelectToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|----------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 753.4 ns | 14.23 ns | 22.98 ns | 745.2 ns | baseline | | 0.7877 | 1648 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,129.7 ns | 16.29 ns | 13.60 ns | 1,127.5 ns | 1.50x slower | 0.05x | 0.6256 | 1312 B | 1.26x less | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,418.7 ns | 10.77 ns | 11.97 ns | 1,417.2 ns | 1.89x slower | 0.06x | 0.7725 | 1616 B | 1.02x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,546.8 ns | 30.92 ns | 36.81 ns | 1,536.9 ns | 2.06x slower | 0.07x | 4.2362 | 8874 B | 5.38x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,720.8 ns | 39.15 ns | 111.06 ns | 1,664.5 ns | 2.28x slower | 0.11x | 1.0319 | 2160 B | 1.31x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,158.3 ns | 21.19 ns | 17.69 ns | 1,154.4 ns | 1.54x slower | 0.06x | 0.2632 | 552 B | 2.99x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 817.1 ns | 12.00 ns | 10.64 ns | 813.0 ns | 1.09x slower | 0.04x | 0.2213 | 464 B | 3.55x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,126.1 ns | 22.16 ns | 35.15 ns | 1,111.6 ns | 1.50x slower | 0.07x | 0.2213 | 464 B | 3.55x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 889.8 ns | 23.91 ns | 70.51 ns | 848.6 ns | 1.17x slower | 0.08x | 0.2213 | 464 B | 3.55x less | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 403.6 ns | 10.00 ns | 28.86 ns | 389.8 ns | baseline | | 0.7877 | 1648 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 548.8 ns | 10.95 ns | 24.94 ns | 537.6 ns | 1.36x slower | 0.11x | 0.6266 | 1312 B | 1.26x less | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 622.6 ns | 11.93 ns | 9.32 ns | 617.3 ns | 1.55x slower | 0.11x | 0.7725 | 1616 B | 1.02x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,431.1 ns | 43.97 ns | 126.17 ns | 1,372.2 ns | 3.57x slower | 0.44x | 4.2362 | 8873 B | 5.38x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,397.2 ns | 26.88 ns | 20.98 ns | 1,394.7 ns | 3.48x slower | 0.23x | 1.0319 | 2160 B | 1.31x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 586.6 ns | 11.45 ns | 29.96 ns | 572.2 ns | 1.46x slower | 0.13x | 0.2632 | 552 B | 2.99x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 557.8 ns | 11.22 ns | 19.36 ns | 548.5 ns | 1.39x slower | 0.12x | 0.2213 | 464 B | 3.55x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 640.0 ns | 10.22 ns | 8.54 ns | 635.7 ns | 1.60x slower | 0.09x | 0.2213 | 464 B | 3.55x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 569.6 ns | 4.51 ns | 3.77 ns | 568.8 ns | 1.43x slower | 0.09x | 0.2213 | 464 B | 3.55x less | diff --git a/Results/Enumerable.Int32.EnumerableInt32WhereSelectToList.md b/Results/Enumerable.Int32.EnumerableInt32WhereSelectToList.md deleted file mode 100644 index 6c88aa71..00000000 --- a/Results/Enumerable.Int32.EnumerableInt32WhereSelectToList.md +++ /dev/null @@ -1,51 +0,0 @@ -## Enumerable.Int32.EnumerableInt32WhereSelectToList - -### Source -[EnumerableInt32WhereSelectToList.cs](../LinqBenchmarks/Enumerable/Int32/EnumerableInt32WhereSelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|---------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 700.7 ns | 12.74 ns | 26.03 ns | 689.0 ns | baseline | | 0.5846 | 1224 B | | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,050.0 ns | 9.43 ns | 7.87 ns | 1,052.1 ns | 1.47x slower | 0.07x | 0.6409 | 1344 B | 1.10x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,413.9 ns | 25.90 ns | 29.82 ns | 1,401.1 ns | 2.01x slower | 0.08x | 0.5836 | 1224 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,569.4 ns | 20.25 ns | 15.81 ns | 1,565.4 ns | 2.19x slower | 0.11x | 4.4537 | 9330 B | 7.62x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 2,085.8 ns | 32.13 ns | 35.72 ns | 2,076.2 ns | 2.96x slower | 0.10x | 0.8430 | 1768 B | 1.44x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,170.9 ns | 13.11 ns | 10.94 ns | 1,166.0 ns | 1.64x slower | 0.08x | 0.2785 | 584 B | 2.10x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 877.0 ns | 21.22 ns | 61.22 ns | 845.0 ns | 1.25x slower | 0.07x | 0.2365 | 496 B | 2.47x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,146.1 ns | 7.72 ns | 6.84 ns | 1,144.3 ns | 1.61x slower | 0.07x | 0.2365 | 496 B | 2.47x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 872.7 ns | 19.55 ns | 55.14 ns | 842.2 ns | 1.26x slower | 0.09x | 0.2365 | 496 B | 2.47x less | -| | | | | | | | | | | | | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 388.0 ns | 14.05 ns | 40.33 ns | 363.8 ns | baseline | | 0.5851 | 1224 B | | -| Linq | .NET 8 | .NET 8.0 | 100 | 623.8 ns | 11.96 ns | 12.80 ns | 617.4 ns | 1.65x slower | 0.13x | 0.6418 | 1344 B | 1.10x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 586.7 ns | 11.56 ns | 15.43 ns | 577.9 ns | 1.58x slower | 0.11x | 0.5846 | 1224 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,399.2 ns | 21.94 ns | 28.53 ns | 1,394.5 ns | 3.76x slower | 0.25x | 4.4537 | 9329 B | 7.62x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,687.1 ns | 19.68 ns | 15.36 ns | 1,688.2 ns | 4.42x slower | 0.36x | 0.8430 | 1768 B | 1.44x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 610.7 ns | 4.01 ns | 3.13 ns | 610.7 ns | 1.60x slower | 0.14x | 0.2785 | 584 B | 2.10x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 547.2 ns | 6.40 ns | 5.99 ns | 544.6 ns | 1.44x slower | 0.11x | 0.2365 | 496 B | 2.47x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 651.7 ns | 4.58 ns | 3.58 ns | 651.1 ns | 1.71x slower | 0.14x | 0.2365 | 496 B | 2.47x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 578.1 ns | 11.31 ns | 14.31 ns | 572.6 ns | 1.55x slower | 0.09x | 0.2365 | 496 B | 2.47x less | diff --git a/Results/ImmutableArray.Int32.ImmutableArrayInt32Contains.md b/Results/ImmutableArray.Int32.ImmutableArrayInt32Contains.md deleted file mode 100644 index ec15a9ac..00000000 --- a/Results/ImmutableArray.Int32.ImmutableArrayInt32Contains.md +++ /dev/null @@ -1,49 +0,0 @@ -## ImmutableArray.Int32.ImmutableArrayInt32Contains - -### Source -[ImmutableArrayInt32Contains.cs](../LinqBenchmarks/ImmutableArray/Int32/ImmutableArrayInt32Contains.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |---------:|---------:|---------:|---------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 41.57 ns | 0.845 ns | 1.098 ns | 41.14 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 41.71 ns | 0.425 ns | 0.355 ns | 41.58 ns | 1.00x faster | 0.03x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 36.99 ns | 0.420 ns | 0.413 ns | 36.85 ns | 1.13x faster | 0.04x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 74.39 ns | 2.890 ns | 8.430 ns | 70.11 ns | 1.93x slower | 0.24x | 0.2142 | 448 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 99.83 ns | 2.012 ns | 5.156 ns | 97.11 ns | 2.42x slower | 0.14x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 77.89 ns | 1.564 ns | 2.614 ns | 76.77 ns | 1.89x slower | 0.10x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 39.08 ns | 0.311 ns | 0.243 ns | 38.99 ns | 1.06x faster | 0.03x | 0.0153 | 32 B | NA | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 100 | 23.79 ns | 0.505 ns | 1.042 ns | 23.26 ns | 1.73x faster | 0.10x | - | - | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 40.72 ns | 0.399 ns | 0.443 ns | 40.63 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 57.85 ns | 0.988 ns | 0.924 ns | 57.44 ns | 1.42x slower | 0.02x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 13.63 ns | 0.194 ns | 0.151 ns | 13.57 ns | 3.00x faster | 0.04x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 49.81 ns | 1.168 ns | 3.276 ns | 48.48 ns | 1.22x slower | 0.09x | 0.2142 | 448 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 79.27 ns | 1.019 ns | 0.851 ns | 79.21 ns | 1.94x slower | 0.03x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 66.65 ns | 1.308 ns | 1.021 ns | 66.31 ns | 1.63x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 18.19 ns | 0.292 ns | 0.312 ns | 18.09 ns | 2.24x faster | 0.04x | 0.0153 | 32 B | NA | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 100 | 13.19 ns | 0.193 ns | 0.171 ns | 13.13 ns | 3.09x faster | 0.05x | - | - | NA | diff --git a/Results/ImmutableArray.Int32.ImmutableArrayInt32Select.md b/Results/ImmutableArray.Int32.ImmutableArrayInt32Select.md deleted file mode 100644 index 1c67486b..00000000 --- a/Results/ImmutableArray.Int32.ImmutableArrayInt32Select.md +++ /dev/null @@ -1,53 +0,0 @@ -## ImmutableArray.Int32.ImmutableArrayInt32Select - -### Source -[ImmutableArrayInt32Select.cs](../LinqBenchmarks/ImmutableArray/Int32/ImmutableArrayInt32Select.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|-----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 56.75 ns | 0.327 ns | 0.306 ns | 56.66 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 57.32 ns | 1.170 ns | 1.752 ns | 56.53 ns | 1.02x slower | 0.04x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 644.48 ns | 12.449 ns | 17.452 ns | 636.52 ns | 11.46x slower | 0.39x | 0.0229 | 48 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 655.32 ns | 8.958 ns | 6.994 ns | 653.18 ns | 11.54x slower | 0.17x | 0.4320 | 904 B | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 2,014.15 ns | 39.747 ns | 53.061 ns | 1,994.85 ns | 35.69x slower | 1.05x | 4.2534 | 8898 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,732.46 ns | 32.208 ns | 28.551 ns | 1,721.65 ns | 30.52x slower | 0.50x | 0.2899 | 608 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 215.66 ns | 4.209 ns | 10.084 ns | 209.45 ns | 3.83x slower | 0.18x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 167.15 ns | 1.553 ns | 1.296 ns | 166.76 ns | 2.94x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 219.24 ns | 4.400 ns | 12.120 ns | 212.29 ns | 3.85x slower | 0.19x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 181.28 ns | 2.918 ns | 2.866 ns | 180.05 ns | 3.20x slower | 0.05x | - | - | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 45.41 ns | 0.544 ns | 0.482 ns | 45.25 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 50.55 ns | 0.935 ns | 1.510 ns | 49.91 ns | 1.12x slower | 0.03x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 188.25 ns | 3.778 ns | 8.293 ns | 184.03 ns | 4.25x slower | 0.23x | 0.0229 | 48 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 397.24 ns | 3.465 ns | 2.893 ns | 396.22 ns | 8.74x slower | 0.12x | 0.4320 | 904 B | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,629.42 ns | 42.793 ns | 120.699 ns | 1,565.79 ns | 35.86x slower | 2.47x | 4.2458 | 8897 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,223.90 ns | 22.697 ns | 22.292 ns | 1,215.79 ns | 27.01x slower | 0.63x | 0.2899 | 608 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 182.43 ns | 1.841 ns | 1.437 ns | 182.16 ns | 4.01x slower | 0.06x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 154.82 ns | 2.554 ns | 2.838 ns | 153.96 ns | 3.42x slower | 0.08x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 166.21 ns | 0.778 ns | 0.650 ns | 166.08 ns | 3.66x slower | 0.04x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 153.47 ns | 2.389 ns | 1.995 ns | 152.79 ns | 3.38x slower | 0.06x | - | - | NA | diff --git a/Results/ImmutableArray.Int32.ImmutableArrayInt32SkipTakeSelect.md b/Results/ImmutableArray.Int32.ImmutableArrayInt32SkipTakeSelect.md deleted file mode 100644 index dd6d8517..00000000 --- a/Results/ImmutableArray.Int32.ImmutableArrayInt32SkipTakeSelect.md +++ /dev/null @@ -1,51 +0,0 @@ -## ImmutableArray.Int32.ImmutableArrayInt32SkipTakeSelect - -### Source -[ImmutableArrayInt32SkipTakeSelect.cs](../LinqBenchmarks/ImmutableArray/Int32/ImmutableArrayInt32SkipTakeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |-------------:|-----------:|-----------:|-------------:|---------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 86.98 ns | 1.757 ns | 4.175 ns | 84.84 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,195.82 ns | 23.833 ns | 52.812 ns | 1,175.55 ns | 13.76x slower | 0.66x | 0.0839 | 176 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 937.73 ns | 7.942 ns | 7.040 ns | 937.73 ns | 10.75x slower | 0.58x | 2.5444 | 5328 B | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 6,396.52 ns | 170.943 ns | 490.467 ns | 6,111.45 ns | 73.74x slower | 6.01x | 4.2496 | 8898 B | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 10,515.71 ns | 164.556 ns | 137.412 ns | 10,476.06 ns | 120.15x slower | 5.70x | 0.4425 | 936 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 238.34 ns | 1.964 ns | 1.533 ns | 237.87 ns | 2.72x slower | 0.15x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 179.89 ns | 1.648 ns | 1.287 ns | 179.71 ns | 2.05x slower | 0.11x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 251.64 ns | 2.847 ns | 2.222 ns | 251.28 ns | 2.87x slower | 0.16x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 202.42 ns | 3.979 ns | 5.579 ns | 199.00 ns | 2.31x slower | 0.10x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 59.02 ns | 1.120 ns | 2.103 ns | 58.07 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 348.74 ns | 6.906 ns | 7.676 ns | 345.88 ns | 5.90x slower | 0.24x | 0.0839 | 176 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 631.57 ns | 11.755 ns | 24.794 ns | 622.12 ns | 10.76x slower | 0.58x | 2.5444 | 5328 B | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 5,976.82 ns | 98.118 ns | 127.581 ns | 5,935.85 ns | 101.43x slower | 3.80x | 4.2419 | 8897 B | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 6,900.77 ns | 166.320 ns | 479.872 ns | 6,624.13 ns | 117.92x slower | 9.88x | 0.4425 | 936 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 204.76 ns | 4.139 ns | 6.067 ns | 201.40 ns | 3.45x slower | 0.18x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 152.33 ns | 1.569 ns | 1.311 ns | 151.76 ns | 2.56x slower | 0.11x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 173.93 ns | 1.270 ns | 0.991 ns | 173.56 ns | 2.91x slower | 0.12x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 153.35 ns | 3.082 ns | 2.732 ns | 152.52 ns | 2.58x slower | 0.13x | - | - | NA | diff --git a/Results/ImmutableArray.Int32.ImmutableArrayInt32Sum.md b/Results/ImmutableArray.Int32.ImmutableArrayInt32Sum.md deleted file mode 100644 index 200200c7..00000000 --- a/Results/ImmutableArray.Int32.ImmutableArrayInt32Sum.md +++ /dev/null @@ -1,51 +0,0 @@ -## ImmutableArray.Int32.ImmutableArrayInt32Sum - -### Source -[ImmutableArrayInt32Sum.cs](../LinqBenchmarks/ImmutableArray/Int32/ImmutableArrayInt32Sum.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|----------:|----------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 44.68 ns | 0.860 ns | 1.593 ns | 43.88 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 45.38 ns | 0.923 ns | 1.263 ns | 44.76 ns | 1.01x slower | 0.05x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 442.63 ns | 6.545 ns | 5.802 ns | 440.81 ns | 9.99x slower | 0.25x | 0.0267 | 56 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 109.86 ns | 2.664 ns | 7.687 ns | 105.46 ns | 2.47x slower | 0.20x | 0.2142 | 448 B | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 647.46 ns | 4.707 ns | 5.231 ns | 645.86 ns | 14.43x slower | 0.59x | 0.0267 | 56 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 729.03 ns | 14.251 ns | 18.022 ns | 722.38 ns | 16.27x slower | 0.74x | 0.1259 | 264 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 115.54 ns | 1.501 ns | 1.253 ns | 115.08 ns | 2.60x slower | 0.07x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 61.00 ns | 1.080 ns | 1.109 ns | 60.54 ns | 1.37x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 21.59 ns | 0.277 ns | 0.259 ns | 21.49 ns | 2.06x faster | 0.07x | - | - | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 39.62 ns | 0.213 ns | 0.166 ns | 39.62 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 40.08 ns | 0.818 ns | 2.154 ns | 39.00 ns | 1.02x slower | 0.05x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 180.95 ns | 2.868 ns | 3.188 ns | 179.97 ns | 4.58x slower | 0.10x | 0.0267 | 56 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 100.16 ns | 0.868 ns | 0.770 ns | 99.82 ns | 2.53x slower | 0.02x | 0.2141 | 448 B | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 530.86 ns | 7.142 ns | 5.576 ns | 529.75 ns | 13.40x slower | 0.15x | 0.0267 | 56 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 473.79 ns | 9.517 ns | 27.761 ns | 455.53 ns | 12.03x slower | 0.78x | 0.1259 | 264 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 115.83 ns | 1.743 ns | 1.545 ns | 115.24 ns | 2.92x slower | 0.04x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 87.61 ns | 1.774 ns | 4.215 ns | 85.49 ns | 2.26x slower | 0.12x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 10.62 ns | 0.207 ns | 0.254 ns | 10.54 ns | 3.74x faster | 0.07x | - | - | NA | diff --git a/Results/ImmutableArray.Int32.ImmutableArrayInt32Where.md b/Results/ImmutableArray.Int32.ImmutableArrayInt32Where.md deleted file mode 100644 index b4bf1739..00000000 --- a/Results/ImmutableArray.Int32.ImmutableArrayInt32Where.md +++ /dev/null @@ -1,53 +0,0 @@ -## ImmutableArray.Int32.ImmutableArrayInt32Where - -### Source -[ImmutableArrayInt32Where.cs](../LinqBenchmarks/ImmutableArray/Int32/ImmutableArrayInt32Where.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|-----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 66.60 ns | 0.783 ns | 0.611 ns | 66.37 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 67.29 ns | 1.383 ns | 1.537 ns | 66.83 ns | 1.02x slower | 0.02x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 472.06 ns | 7.023 ns | 7.212 ns | 469.32 ns | 7.12x slower | 0.13x | 0.0229 | 48 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 551.81 ns | 5.276 ns | 4.677 ns | 550.15 ns | 8.28x slower | 0.12x | 0.3443 | 720 B | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,717.22 ns | 25.015 ns | 20.889 ns | 1,717.16 ns | 25.79x slower | 0.37x | 4.1656 | 8714 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,905.59 ns | 44.082 ns | 129.977 ns | 1,818.10 ns | 28.91x slower | 2.18x | 0.2899 | 608 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 326.10 ns | 6.487 ns | 13.104 ns | 321.84 ns | 4.92x slower | 0.22x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 184.65 ns | 3.724 ns | 4.433 ns | 182.51 ns | 2.76x slower | 0.07x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 276.70 ns | 4.738 ns | 7.236 ns | 275.08 ns | 4.17x slower | 0.12x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 208.41 ns | 1.989 ns | 1.553 ns | 208.04 ns | 3.13x slower | 0.03x | - | - | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 67.72 ns | 1.376 ns | 1.638 ns | 67.08 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 62.05 ns | 1.236 ns | 1.323 ns | 61.58 ns | 1.10x faster | 0.04x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 184.31 ns | 3.697 ns | 9.740 ns | 178.98 ns | 2.71x slower | 0.12x | 0.0229 | 48 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 300.82 ns | 4.771 ns | 3.984 ns | 301.15 ns | 4.46x slower | 0.12x | 0.3443 | 720 B | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,360.64 ns | 18.947 ns | 16.796 ns | 1,353.43 ns | 20.10x slower | 0.59x | 4.1656 | 8713 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,149.23 ns | 12.965 ns | 10.827 ns | 1,144.38 ns | 17.04x slower | 0.43x | 0.2899 | 608 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 196.38 ns | 2.342 ns | 1.956 ns | 195.96 ns | 2.91x slower | 0.08x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 177.19 ns | 1.844 ns | 1.540 ns | 176.88 ns | 2.63x slower | 0.06x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 190.04 ns | 3.351 ns | 4.911 ns | 188.51 ns | 2.82x slower | 0.11x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 176.18 ns | 1.501 ns | 1.253 ns | 175.66 ns | 2.61x slower | 0.05x | - | - | NA | diff --git a/Results/List.Int32.ListInt32Contains.md b/Results/List.Int32.ListInt32Contains.md deleted file mode 100644 index 546ff84c..00000000 --- a/Results/List.Int32.ListInt32Contains.md +++ /dev/null @@ -1,55 +0,0 @@ -## List.Int32.ListInt32Contains - -### Source -[ListInt32Contains.cs](../LinqBenchmarks/List/Int32/ListInt32Contains.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|---------:|---------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 112.03 ns | 2.161 ns | 2.885 ns | 110.66 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 169.39 ns | 3.403 ns | 7.029 ns | 165.76 ns | 1.53x slower | 0.09x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 33.65 ns | 0.301 ns | 0.334 ns | 33.60 ns | 3.34x faster | 0.10x | - | - | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 35.66 ns | 0.637 ns | 0.532 ns | 35.40 ns | 3.12x faster | 0.08x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 70.29 ns | 1.010 ns | 0.945 ns | 70.05 ns | 1.59x faster | 0.05x | 0.2027 | 424 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 32.23 ns | 0.191 ns | 0.169 ns | 32.25 ns | 3.46x faster | 0.08x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 76.81 ns | 0.608 ns | 0.475 ns | 76.84 ns | 1.45x faster | 0.04x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 64.24 ns | 0.740 ns | 0.577 ns | 64.05 ns | 1.73x faster | 0.04x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 37.88 ns | 0.973 ns | 2.679 ns | 36.52 ns | 2.93x faster | 0.23x | 0.0153 | 32 B | NA | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 100 | 25.18 ns | 0.498 ns | 0.885 ns | 24.69 ns | 4.46x faster | 0.15x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 223.22 ns | 3.085 ns | 3.168 ns | 221.88 ns | 1.99x slower | 0.06x | 0.0305 | 64 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 83.97 ns | 1.451 ns | 1.212 ns | 83.48 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 73.90 ns | 0.723 ns | 0.564 ns | 73.71 ns | 1.14x faster | 0.02x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 11.77 ns | 0.130 ns | 0.159 ns | 11.73 ns | 7.14x faster | 0.11x | - | - | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 15.13 ns | 0.300 ns | 0.346 ns | 14.99 ns | 5.52x faster | 0.12x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 43.45 ns | 0.452 ns | 0.377 ns | 43.30 ns | 1.93x faster | 0.03x | 0.2027 | 424 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 12.76 ns | 0.140 ns | 0.117 ns | 12.73 ns | 6.58x faster | 0.12x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 56.27 ns | 0.711 ns | 0.665 ns | 56.18 ns | 1.50x faster | 0.02x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 60.78 ns | 0.428 ns | 0.334 ns | 60.77 ns | 1.38x faster | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 19.03 ns | 0.298 ns | 0.249 ns | 19.03 ns | 4.41x faster | 0.07x | 0.0153 | 32 B | NA | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 100 | 13.28 ns | 0.279 ns | 0.353 ns | 13.12 ns | 6.29x faster | 0.21x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 146.90 ns | 1.883 ns | 1.572 ns | 146.47 ns | 1.75x slower | 0.02x | 0.0305 | 64 B | NA | diff --git a/Results/List.Int32.ListInt32Distinct.md b/Results/List.Int32.ListInt32Distinct.md deleted file mode 100644 index 23b67f2f..00000000 --- a/Results/List.Int32.ListInt32Distinct.md +++ /dev/null @@ -1,51 +0,0 @@ -## List.Int32.ListInt32Distinct - -### Source -[ListInt32Distinct.cs](../LinqBenchmarks/List/Int32/ListInt32Distinct.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Duplicates | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----------- |------ |-----------:|----------:|----------:|-----------:|-------------:|--------:|-------:|----------:|--------------:| -| ForLoop | .NET 6 | .NET 6.0 | 4 | 100 | 3,115.4 ns | 48.00 ns | 55.28 ns | 3,096.9 ns | baseline | | 2.8610 | 6000 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 4 | 100 | 3,079.0 ns | 30.75 ns | 30.20 ns | 3,071.2 ns | 1.01x faster | 0.02x | 2.8648 | 6000 B | 1.000x more | -| Linq | .NET 6 | .NET 6.0 | 4 | 100 | 5,454.2 ns | 68.91 ns | 53.80 ns | 5,441.8 ns | 1.75x slower | 0.03x | 2.8610 | 6000 B | 1.000x more | -| LinqFaster | .NET 6 | .NET 6.0 | 4 | 100 | 763.7 ns | 17.25 ns | 49.49 ns | 736.7 ns | 4.08x faster | 0.26x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 4 | 100 | 4,759.3 ns | 91.57 ns | 101.78 ns | 4,723.8 ns | 1.53x slower | 0.04x | 5.2032 | 10896 B | 1.816x more | -| LinqAF | .NET 6 | .NET 6.0 | 4 | 100 | 8,060.5 ns | 51.10 ns | 45.30 ns | 8,061.0 ns | 2.58x slower | 0.06x | 5.9204 | 12400 B | 2.067x more | -| StructLinq | .NET 6 | .NET 6.0 | 4 | 100 | 3,447.9 ns | 38.70 ns | 34.31 ns | 3,439.8 ns | 1.10x slower | 0.02x | 0.0153 | 32 B | 187.500x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 4 | 100 | 3,406.7 ns | 44.19 ns | 43.40 ns | 3,397.5 ns | 1.09x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 4 | 100 | 3,417.7 ns | 67.60 ns | 52.78 ns | 3,401.6 ns | 1.09x slower | 0.03x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 4 | 100 | 3,388.5 ns | 83.85 ns | 240.59 ns | 3,263.0 ns | baseline | | 2.8648 | 6000 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 4 | 100 | 3,199.4 ns | 62.84 ns | 74.80 ns | 3,166.1 ns | 1.07x faster | 0.09x | 2.8648 | 6000 B | 1.000x more | -| Linq | .NET 8 | .NET 8.0 | 4 | 100 | 3,869.4 ns | 66.33 ns | 58.80 ns | 3,847.3 ns | 1.15x slower | 0.08x | 2.8610 | 6000 B | 1.000x more | -| LinqFaster | .NET 8 | .NET 8.0 | 4 | 100 | 545.0 ns | 4.28 ns | 3.79 ns | 545.1 ns | 6.22x faster | 0.42x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 4 | 100 | 3,874.2 ns | 44.90 ns | 37.49 ns | 3,857.4 ns | 1.14x slower | 0.07x | 5.2032 | 10896 B | 1.816x more | -| LinqAF | .NET 8 | .NET 8.0 | 4 | 100 | 6,266.5 ns | 102.76 ns | 118.34 ns | 6,221.5 ns | 1.84x slower | 0.14x | 5.9280 | 12400 B | 2.067x more | -| StructLinq | .NET 8 | .NET 8.0 | 4 | 100 | 2,577.9 ns | 21.75 ns | 19.28 ns | 2,574.2 ns | 1.31x faster | 0.09x | 0.0153 | 32 B | 187.500x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 4 | 100 | 2,696.6 ns | 52.94 ns | 109.32 ns | 2,629.0 ns | 1.27x faster | 0.11x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 4 | 100 | 2,669.2 ns | 53.26 ns | 139.38 ns | 2,601.2 ns | 1.28x faster | 0.11x | - | - | NA | diff --git a/Results/List.Int32.ListInt32Select.md b/Results/List.Int32.ListInt32Select.md deleted file mode 100644 index 7767cf55..00000000 --- a/Results/List.Int32.ListInt32Select.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.Int32.ListInt32Select - -### Source -[ListInt32Select.cs](../LinqBenchmarks/List/Int32/ListInt32Select.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 109.97 ns | 0.562 ns | 0.526 ns | 109.94 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 166.33 ns | 2.900 ns | 3.452 ns | 164.97 ns | 1.52x slower | 0.04x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 822.01 ns | 9.994 ns | 7.803 ns | 819.80 ns | 7.47x slower | 0.09x | 0.0343 | 72 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 465.18 ns | 11.239 ns | 32.962 ns | 446.53 ns | 4.20x slower | 0.27x | 0.2179 | 456 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 644.95 ns | 6.676 ns | 5.575 ns | 644.36 ns | 5.86x slower | 0.05x | 0.4206 | 880 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 402.44 ns | 8.002 ns | 20.075 ns | 392.08 ns | 3.69x slower | 0.19x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 2,126.13 ns | 19.258 ns | 16.081 ns | 2,122.88 ns | 19.33x slower | 0.17x | 4.2534 | 8906 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,553.56 ns | 30.778 ns | 84.253 ns | 1,514.57 ns | 14.29x slower | 0.85x | 0.2899 | 608 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 210.22 ns | 1.923 ns | 1.606 ns | 209.80 ns | 1.91x slower | 0.02x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 164.59 ns | 3.152 ns | 3.752 ns | 162.98 ns | 1.50x slower | 0.04x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 215.13 ns | 3.948 ns | 8.329 ns | 211.31 ns | 1.96x slower | 0.08x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 184.93 ns | 3.469 ns | 3.245 ns | 183.79 ns | 1.68x slower | 0.03x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 600.19 ns | 7.345 ns | 5.734 ns | 600.61 ns | 5.45x slower | 0.06x | 0.5655 | 1184 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 72.99 ns | 1.510 ns | 2.761 ns | 71.65 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 113.56 ns | 2.233 ns | 4.901 ns | 110.80 ns | 1.56x slower | 0.09x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 299.79 ns | 2.071 ns | 1.617 ns | 299.31 ns | 4.06x slower | 0.16x | 0.0343 | 72 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 298.10 ns | 3.953 ns | 3.086 ns | 297.80 ns | 4.04x slower | 0.15x | 0.2179 | 456 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 312.51 ns | 6.123 ns | 7.520 ns | 309.83 ns | 4.28x slower | 0.14x | 0.4206 | 880 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 283.26 ns | 1.140 ns | 1.066 ns | 283.04 ns | 3.84x slower | 0.14x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,884.23 ns | 15.525 ns | 13.762 ns | 1,883.42 ns | 25.50x slower | 0.88x | 4.2534 | 8905 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,148.65 ns | 8.614 ns | 7.193 ns | 1,147.66 ns | 15.52x slower | 0.62x | 0.2899 | 608 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 163.98 ns | 2.657 ns | 2.485 ns | 162.82 ns | 2.22x slower | 0.08x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 149.94 ns | 0.914 ns | 0.714 ns | 149.70 ns | 2.03x slower | 0.07x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 165.88 ns | 1.389 ns | 1.085 ns | 165.52 ns | 2.25x slower | 0.09x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 150.87 ns | 2.579 ns | 3.615 ns | 149.09 ns | 2.08x slower | 0.05x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 400.42 ns | 3.294 ns | 3.235 ns | 399.96 ns | 5.44x slower | 0.19x | 0.5660 | 1184 B | NA | diff --git a/Results/List.Int32.ListInt32SelectToList.md b/Results/List.Int32.ListInt32SelectToList.md deleted file mode 100644 index f67512bd..00000000 --- a/Results/List.Int32.ListInt32SelectToList.md +++ /dev/null @@ -1,63 +0,0 @@ -## List.Int32.ListInt32SelectToList - -### Source -[ListInt32SelectToList.cs](../LinqBenchmarks/List/Int32/ListInt32SelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|----------------------------- |------- |--------- |------ |------------:|----------:|-----------:|------------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 333.79 ns | 3.495 ns | 2.729 ns | 333.31 ns | baseline | | 0.5660 | 1184 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 417.12 ns | 8.157 ns | 23.008 ns | 404.95 ns | 1.25x slower | 0.07x | 0.5660 | 1184 B | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 333.58 ns | 7.051 ns | 19.657 ns | 323.04 ns | 1.03x slower | 0.08x | 0.2522 | 528 B | 2.24x less | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 372.81 ns | 9.819 ns | 28.643 ns | 356.46 ns | 1.10x slower | 0.09x | 0.4358 | 912 B | 1.30x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 298.78 ns | 5.857 ns | 15.223 ns | 294.13 ns | 1.08x faster | 0.06x | 0.6232 | 1304 B | 1.10x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 699.25 ns | 13.106 ns | 12.872 ns | 698.01 ns | 2.09x slower | 0.04x | 0.5646 | 1184 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,923.76 ns | 56.172 ns | 159.350 ns | 1,845.41 ns | 5.81x slower | 0.50x | 4.4537 | 9330 B | 7.88x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,480.02 ns | 28.149 ns | 23.506 ns | 1,472.12 ns | 4.42x slower | 0.07x | 0.7534 | 1576 B | 1.33x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 277.67 ns | 5.207 ns | 12.273 ns | 272.75 ns | 1.17x faster | 0.06x | 0.2484 | 520 B | 2.28x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 133.84 ns | 1.282 ns | 1.071 ns | 133.77 ns | 2.49x faster | 0.03x | 0.2370 | 496 B | 2.39x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 228.78 ns | 2.298 ns | 1.919 ns | 228.03 ns | 1.46x faster | 0.02x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 124.41 ns | 2.456 ns | 1.917 ns | 124.11 ns | 2.68x faster | 0.05x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 100 | 96.84 ns | 1.807 ns | 2.009 ns | 96.29 ns | 3.44x faster | 0.08x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate_SIMD | .NET 6 | .NET 6.0 | 100 | 58.26 ns | 0.915 ns | 0.811 ns | 58.19 ns | 5.73x faster | 0.11x | 0.2180 | 456 B | 2.60x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 425.60 ns | 8.113 ns | 12.869 ns | 420.78 ns | 1.30x slower | 0.05x | 0.5660 | 1184 B | 1.00x more | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 309.43 ns | 3.347 ns | 2.613 ns | 308.54 ns | baseline | | 0.5660 | 1184 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 308.35 ns | 5.868 ns | 9.804 ns | 307.14 ns | 1.01x slower | 0.03x | 0.5660 | 1184 B | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 145.82 ns | 2.893 ns | 3.658 ns | 144.96 ns | 2.13x faster | 0.07x | 0.2522 | 528 B | 2.24x less | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 250.54 ns | 1.858 ns | 1.551 ns | 250.03 ns | 1.23x faster | 0.01x | 0.4358 | 912 B | 1.30x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 170.71 ns | 2.634 ns | 2.927 ns | 169.90 ns | 1.81x faster | 0.04x | 0.6235 | 1304 B | 1.10x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 559.21 ns | 5.556 ns | 5.197 ns | 558.08 ns | 1.81x slower | 0.03x | 0.5655 | 1184 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,782.25 ns | 35.550 ns | 58.410 ns | 1,767.36 ns | 5.71x slower | 0.14x | 4.4518 | 9329 B | 7.88x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,433.51 ns | 42.342 ns | 124.846 ns | 1,356.76 ns | 4.53x slower | 0.23x | 0.7534 | 1576 B | 1.33x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 172.48 ns | 3.473 ns | 7.402 ns | 168.56 ns | 1.80x faster | 0.07x | 0.2484 | 520 B | 2.28x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 122.40 ns | 1.330 ns | 1.179 ns | 122.12 ns | 2.53x faster | 0.04x | 0.2370 | 496 B | 2.39x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 147.35 ns | 1.072 ns | 0.895 ns | 146.97 ns | 2.10x faster | 0.02x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 93.15 ns | 0.538 ns | 0.477 ns | 92.94 ns | 3.32x faster | 0.03x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 100 | 59.57 ns | 0.668 ns | 0.625 ns | 59.22 ns | 5.19x faster | 0.07x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate_SIMD | .NET 8 | .NET 8.0 | 100 | 49.64 ns | 1.744 ns | 5.088 ns | 46.55 ns | 6.22x faster | 0.63x | 0.2180 | 456 B | 2.60x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 379.97 ns | 10.670 ns | 31.126 ns | 360.93 ns | 1.22x slower | 0.10x | 0.5660 | 1184 B | 1.00x more | diff --git a/Results/List.Int32.ListInt32SkipTakeSelect.md b/Results/List.Int32.ListInt32SkipTakeSelect.md deleted file mode 100644 index 0ed39a1b..00000000 --- a/Results/List.Int32.ListInt32SkipTakeSelect.md +++ /dev/null @@ -1,55 +0,0 @@ -## List.Int32.ListInt32SkipTakeSelect - -### Source -[ListInt32SkipTakeSelect.cs](../LinqBenchmarks/List/Int32/ListInt32SkipTakeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|-----------:|-----------:|------------:|---------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 70.76 ns | 0.422 ns | 0.330 ns | 70.72 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 907.91 ns | 6.472 ns | 5.053 ns | 907.34 ns | 12.83x slower | 0.08x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 842.17 ns | 19.627 ns | 56.315 ns | 810.77 ns | 12.10x slower | 0.97x | 0.6533 | 1368 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 949.39 ns | 18.673 ns | 17.467 ns | 942.90 ns | 13.46x slower | 0.26x | 2.5311 | 5304 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 3,828.64 ns | 86.175 ns | 248.635 ns | 3,672.97 ns | 54.55x slower | 3.45x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 9,068.42 ns | 156.797 ns | 334.146 ns | 8,943.66 ns | 127.74x slower | 3.78x | 4.2419 | 8906 B | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 7,596.75 ns | 43.047 ns | 35.946 ns | 7,594.22 ns | 107.41x slower | 0.54x | 0.4425 | 936 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 264.43 ns | 2.340 ns | 1.827 ns | 263.97 ns | 3.74x slower | 0.03x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 168.98 ns | 3.327 ns | 2.949 ns | 167.74 ns | 2.38x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 228.09 ns | 4.549 ns | 3.552 ns | 226.45 ns | 3.22x slower | 0.06x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 202.19 ns | 3.189 ns | 2.827 ns | 201.14 ns | 2.86x slower | 0.05x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 70.61 ns | 0.442 ns | 0.369 ns | 70.48 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 419.47 ns | 10.246 ns | 29.067 ns | 401.42 ns | 5.91x slower | 0.41x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 764.66 ns | 14.828 ns | 20.296 ns | 754.56 ns | 10.87x slower | 0.36x | 0.6533 | 1368 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 683.86 ns | 13.993 ns | 39.469 ns | 667.97 ns | 9.81x slower | 0.65x | 2.5311 | 5304 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 2,647.54 ns | 13.038 ns | 10.887 ns | 2,648.37 ns | 37.49x slower | 0.22x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 8,992.42 ns | 101.398 ns | 79.165 ns | 8,974.85 ns | 127.29x slower | 1.26x | 4.2419 | 8905 B | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 5,674.26 ns | 128.133 ns | 375.792 ns | 5,453.53 ns | 82.67x slower | 5.97x | 0.4425 | 936 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 222.21 ns | 1.090 ns | 0.911 ns | 222.09 ns | 3.15x slower | 0.02x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 148.69 ns | 0.731 ns | 0.648 ns | 148.50 ns | 2.11x slower | 0.01x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 183.19 ns | 3.673 ns | 9.611 ns | 178.24 ns | 2.62x slower | 0.17x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 154.89 ns | 2.444 ns | 3.262 ns | 153.49 ns | 2.20x slower | 0.05x | - | - | NA | diff --git a/Results/List.Int32.ListInt32SkipTakeWhere.md b/Results/List.Int32.ListInt32SkipTakeWhere.md deleted file mode 100644 index 5d7eb3eb..00000000 --- a/Results/List.Int32.ListInt32SkipTakeWhere.md +++ /dev/null @@ -1,55 +0,0 @@ -## List.Int32.ListInt32SkipTakeWhere - -### Source -[ListInt32SkipTakeWhere.cs](../LinqBenchmarks/List/Int32/ListInt32SkipTakeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |-----------:|----------:|----------:|-----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 117.6 ns | 0.75 ns | 0.73 ns | 117.6 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,622.0 ns | 65.18 ns | 173.99 ns | 1,540.6 ns | 14.26x slower | 1.38x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 861.9 ns | 18.96 ns | 52.54 ns | 841.7 ns | 7.58x slower | 0.62x | 0.7458 | 1560 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 865.4 ns | 24.91 ns | 71.47 ns | 827.4 ns | 7.45x slower | 0.69x | 2.4424 | 5112 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 6,069.6 ns | 120.13 ns | 285.50 ns | 5,944.3 ns | 52.82x slower | 3.22x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 8,255.2 ns | 122.58 ns | 95.70 ns | 8,225.9 ns | 70.19x slower | 0.62x | 4.1656 | 8714 B | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 7,407.2 ns | 38.79 ns | 32.39 ns | 7,410.6 ns | 62.98x slower | 0.50x | 0.4425 | 936 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 339.4 ns | 4.79 ns | 3.74 ns | 340.2 ns | 2.89x slower | 0.04x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 168.8 ns | 2.71 ns | 4.53 ns | 166.5 ns | 1.44x slower | 0.04x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 341.0 ns | 5.97 ns | 7.55 ns | 338.9 ns | 2.91x slower | 0.06x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 222.2 ns | 2.63 ns | 2.19 ns | 221.4 ns | 1.89x slower | 0.01x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 118.3 ns | 1.21 ns | 1.01 ns | 117.8 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 467.0 ns | 9.33 ns | 22.18 ns | 455.7 ns | 4.02x slower | 0.25x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 709.1 ns | 9.42 ns | 9.25 ns | 706.3 ns | 6.00x slower | 0.07x | 0.7458 | 1560 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 561.4 ns | 5.13 ns | 4.00 ns | 559.7 ns | 4.75x slower | 0.05x | 2.4424 | 5112 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 2,597.0 ns | 21.97 ns | 17.16 ns | 2,593.8 ns | 21.95x slower | 0.26x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 9,308.3 ns | 180.31 ns | 325.14 ns | 9,154.5 ns | 79.62x slower | 3.96x | 4.1656 | 8713 B | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 5,432.3 ns | 75.82 ns | 59.20 ns | 5,417.5 ns | 45.92x slower | 0.66x | 0.4425 | 936 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 196.4 ns | 3.92 ns | 9.47 ns | 191.4 ns | 1.69x slower | 0.08x | 0.0458 | 96 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 158.4 ns | 2.62 ns | 3.01 ns | 156.9 ns | 1.35x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 197.3 ns | 3.93 ns | 4.03 ns | 195.6 ns | 1.67x slower | 0.04x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 177.4 ns | 3.52 ns | 3.76 ns | 176.1 ns | 1.49x slower | 0.03x | - | - | NA | diff --git a/Results/List.Int32.ListInt32Sum.md b/Results/List.Int32.ListInt32Sum.md deleted file mode 100644 index 63d90332..00000000 --- a/Results/List.Int32.ListInt32Sum.md +++ /dev/null @@ -1,55 +0,0 @@ -## List.Int32.ListInt32Sum - -### Source -[ListInt32Sum.cs](../LinqBenchmarks/List/Int32/ListInt32Sum.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 84.80 ns | 0.906 ns | 0.969 ns | 84.47 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 138.30 ns | 1.191 ns | 0.995 ns | 137.93 ns | 1.63x slower | 0.02x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 657.65 ns | 13.091 ns | 14.007 ns | 649.01 ns | 7.76x slower | 0.18x | 0.0191 | 40 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 78.36 ns | 0.842 ns | 0.703 ns | 78.12 ns | 1.08x faster | 0.02x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 96.25 ns | 1.288 ns | 1.265 ns | 95.83 ns | 1.13x slower | 0.02x | 0.2027 | 424 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 259.37 ns | 4.807 ns | 4.261 ns | 257.79 ns | 3.06x slower | 0.07x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,001.37 ns | 16.641 ns | 13.896 ns | 995.71 ns | 11.79x slower | 0.26x | 0.0305 | 64 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 342.93 ns | 3.182 ns | 2.484 ns | 342.00 ns | 4.04x slower | 0.07x | 0.0992 | 208 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 73.69 ns | 1.448 ns | 1.778 ns | 72.93 ns | 1.15x faster | 0.03x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 61.70 ns | 1.214 ns | 1.192 ns | 61.34 ns | 1.38x faster | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 21.46 ns | 0.104 ns | 0.081 ns | 21.46 ns | 3.96x faster | 0.06x | - | - | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 59.24 ns | 1.218 ns | 1.747 ns | 58.58 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 67.33 ns | 0.380 ns | 0.317 ns | 67.32 ns | 1.13x slower | 0.04x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 16.44 ns | 0.355 ns | 0.277 ns | 16.34 ns | 3.61x faster | 0.11x | - | - | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 80.78 ns | 1.567 ns | 3.506 ns | 79.03 ns | 1.38x slower | 0.08x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 92.82 ns | 1.249 ns | 1.388 ns | 92.82 ns | 1.56x slower | 0.05x | 0.2027 | 424 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 260.15 ns | 1.244 ns | 0.972 ns | 260.07 ns | 4.38x slower | 0.12x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 958.74 ns | 12.450 ns | 11.037 ns | 957.19 ns | 16.02x slower | 0.67x | 0.0305 | 64 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 251.53 ns | 4.553 ns | 8.092 ns | 247.99 ns | 4.29x slower | 0.21x | 0.0992 | 208 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 58.33 ns | 0.400 ns | 0.354 ns | 58.30 ns | 1.03x faster | 0.04x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 45.02 ns | 0.523 ns | 0.559 ns | 44.82 ns | 1.33x faster | 0.04x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 11.75 ns | 0.382 ns | 1.125 ns | 11.12 ns | 5.13x faster | 0.50x | - | - | NA | diff --git a/Results/List.Int32.ListInt32Where.md b/Results/List.Int32.ListInt32Where.md deleted file mode 100644 index e004c53b..00000000 --- a/Results/List.Int32.ListInt32Where.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.Int32.ListInt32Where - -### Source -[ListInt32Where.cs](../LinqBenchmarks/List/Int32/ListInt32Where.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 132.70 ns | 2.538 ns | 2.374 ns | 132.01 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 185.19 ns | 2.658 ns | 2.075 ns | 184.42 ns | 1.40x slower | 0.02x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 591.14 ns | 10.443 ns | 12.825 ns | 586.85 ns | 4.47x slower | 0.15x | 0.0343 | 72 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 444.98 ns | 8.904 ns | 8.329 ns | 440.78 ns | 3.35x slower | 0.06x | 0.3090 | 648 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 583.41 ns | 4.714 ns | 3.680 ns | 582.55 ns | 4.40x slower | 0.08x | 0.3328 | 696 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 954.67 ns | 18.102 ns | 44.064 ns | 933.75 ns | 7.22x slower | 0.28x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 2,111.61 ns | 30.235 ns | 25.248 ns | 2,105.28 ns | 15.93x slower | 0.40x | 4.1656 | 8722 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,444.50 ns | 12.103 ns | 9.449 ns | 1,442.36 ns | 10.89x slower | 0.18x | 0.2899 | 608 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 298.16 ns | 5.731 ns | 10.037 ns | 296.11 ns | 2.27x slower | 0.11x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 173.49 ns | 2.881 ns | 3.745 ns | 172.40 ns | 1.31x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 481.27 ns | 9.600 ns | 11.428 ns | 476.01 ns | 3.65x slower | 0.09x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 208.26 ns | 3.159 ns | 3.511 ns | 206.63 ns | 1.57x slower | 0.05x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 485.26 ns | 9.848 ns | 27.776 ns | 471.62 ns | 3.68x slower | 0.25x | 0.3095 | 648 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 72.09 ns | 0.601 ns | 0.532 ns | 71.86 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 117.16 ns | 1.595 ns | 1.492 ns | 116.66 ns | 1.63x slower | 0.03x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 266.50 ns | 5.184 ns | 6.921 ns | 263.70 ns | 3.70x slower | 0.13x | 0.0343 | 72 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 304.09 ns | 4.544 ns | 6.660 ns | 303.56 ns | 4.24x slower | 0.10x | 0.3095 | 648 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 259.11 ns | 5.072 ns | 4.497 ns | 257.12 ns | 3.59x slower | 0.07x | 0.3328 | 696 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 281.80 ns | 2.195 ns | 1.714 ns | 281.63 ns | 3.91x slower | 0.03x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,880.47 ns | 32.995 ns | 30.863 ns | 1,872.51 ns | 26.09x slower | 0.46x | 4.1656 | 8721 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,121.76 ns | 6.232 ns | 5.524 ns | 1,121.66 ns | 15.56x slower | 0.12x | 0.2899 | 608 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 180.02 ns | 3.484 ns | 7.426 ns | 176.09 ns | 2.52x slower | 0.11x | 0.0153 | 32 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 159.14 ns | 1.987 ns | 1.659 ns | 158.63 ns | 2.21x slower | 0.03x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 184.84 ns | 3.699 ns | 3.633 ns | 183.40 ns | 2.56x slower | 0.06x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 177.22 ns | 1.607 ns | 1.342 ns | 177.00 ns | 2.46x slower | 0.02x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 388.90 ns | 4.888 ns | 4.800 ns | 387.24 ns | 5.40x slower | 0.07x | 0.3095 | 648 B | NA | diff --git a/Results/List.Int32.ListInt32WhereSelect.md b/Results/List.Int32.ListInt32WhereSelect.md deleted file mode 100644 index 997683fe..00000000 --- a/Results/List.Int32.ListInt32WhereSelect.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.Int32.ListInt32WhereSelect - -### Source -[ListInt32WhereSelect.cs](../LinqBenchmarks/List/Int32/ListInt32WhereSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 131.21 ns | 1.920 ns | 1.604 ns | 130.65 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 125.91 ns | 2.330 ns | 3.558 ns | 124.70 ns | 1.03x faster | 0.04x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 838.28 ns | 9.447 ns | 8.374 ns | 836.90 ns | 6.39x slower | 0.12x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 469.20 ns | 9.344 ns | 8.283 ns | 465.54 ns | 3.58x slower | 0.08x | 0.3090 | 648 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 662.22 ns | 7.852 ns | 6.557 ns | 662.32 ns | 5.05x slower | 0.08x | 0.4473 | 936 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 996.82 ns | 16.274 ns | 22.814 ns | 989.07 ns | 7.58x slower | 0.15x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 2,139.26 ns | 22.981 ns | 19.190 ns | 2,138.94 ns | 16.31x slower | 0.25x | 4.1656 | 8722 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,679.09 ns | 25.758 ns | 21.509 ns | 1,666.03 ns | 12.80x slower | 0.27x | 0.3624 | 760 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 564.64 ns | 11.079 ns | 26.969 ns | 562.27 ns | 4.24x slower | 0.24x | 0.0305 | 64 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 186.30 ns | 3.189 ns | 3.672 ns | 185.03 ns | 1.43x slower | 0.04x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 321.11 ns | 3.133 ns | 2.446 ns | 320.62 ns | 2.45x slower | 0.04x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 219.64 ns | 4.344 ns | 8.369 ns | 215.10 ns | 1.67x slower | 0.05x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 546.18 ns | 3.671 ns | 3.065 ns | 546.71 ns | 4.16x slower | 0.06x | 0.3090 | 648 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 110.97 ns | 1.469 ns | 1.302 ns | 111.44 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 73.42 ns | 1.305 ns | 1.157 ns | 73.05 ns | 1.51x faster | 0.03x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 300.42 ns | 4.553 ns | 3.555 ns | 298.53 ns | 2.71x slower | 0.05x | 0.0725 | 152 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 335.94 ns | 6.722 ns | 14.756 ns | 330.32 ns | 3.06x slower | 0.17x | 0.3095 | 648 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 327.68 ns | 3.992 ns | 3.117 ns | 326.48 ns | 2.95x slower | 0.05x | 0.4473 | 936 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 269.32 ns | 3.203 ns | 4.050 ns | 267.99 ns | 2.43x slower | 0.05x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,917.23 ns | 37.586 ns | 38.598 ns | 1,907.15 ns | 17.26x slower | 0.43x | 4.1656 | 8721 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,257.29 ns | 25.167 ns | 42.049 ns | 1,240.43 ns | 11.36x slower | 0.47x | 0.3624 | 760 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 235.38 ns | 4.752 ns | 13.403 ns | 226.99 ns | 2.12x slower | 0.14x | 0.0305 | 64 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 178.30 ns | 3.314 ns | 5.890 ns | 175.42 ns | 1.63x slower | 0.07x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 224.46 ns | 3.725 ns | 3.985 ns | 222.86 ns | 2.03x slower | 0.05x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 178.30 ns | 3.115 ns | 2.601 ns | 177.37 ns | 1.61x slower | 0.02x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 365.60 ns | 7.339 ns | 19.589 ns | 356.87 ns | 3.28x slower | 0.16x | 0.3095 | 648 B | NA | diff --git a/Results/List.Int32.ListInt32WhereSelectToArray.md b/Results/List.Int32.ListInt32WhereSelectToArray.md deleted file mode 100644 index 8fab0328..00000000 --- a/Results/List.Int32.ListInt32WhereSelectToArray.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.Int32.ListInt32WhereSelectToArray - -### Source -[ListInt32WhereSelectToArray.cs](../LinqBenchmarks/List/Int32/ListInt32WhereSelectToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 280.2 ns | 3.13 ns | 2.77 ns | 279.1 ns | baseline | | 0.4244 | 888 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 326.8 ns | 8.26 ns | 23.30 ns | 316.1 ns | 1.16x slower | 0.09x | 0.4244 | 888 B | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 530.6 ns | 9.74 ns | 18.06 ns | 525.4 ns | 1.92x slower | 0.10x | 0.4015 | 840 B | 1.06x less | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 435.2 ns | 2.70 ns | 2.40 ns | 434.8 ns | 1.55x slower | 0.02x | 0.4244 | 888 B | 1.00x more | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 447.6 ns | 7.79 ns | 6.51 ns | 445.8 ns | 1.60x slower | 0.03x | 0.4320 | 904 B | 1.02x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,149.2 ns | 22.83 ns | 19.07 ns | 1,140.1 ns | 4.10x slower | 0.08x | 0.4082 | 856 B | 1.04x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 2,068.2 ns | 100.11 ns | 283.99 ns | 1,943.5 ns | 8.36x slower | 0.79x | 4.1466 | 8690 B | 9.79x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 961.0 ns | 8.83 ns | 7.83 ns | 961.3 ns | 3.43x slower | 0.05x | 0.6695 | 1400 B | 1.58x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 560.3 ns | 7.63 ns | 6.37 ns | 559.6 ns | 2.00x slower | 0.02x | 0.1602 | 336 B | 2.64x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 292.4 ns | 5.46 ns | 10.64 ns | 287.8 ns | 1.04x slower | 0.04x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 612.7 ns | 5.79 ns | 4.84 ns | 611.4 ns | 2.18x slower | 0.02x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 369.5 ns | 6.63 ns | 13.69 ns | 364.5 ns | 1.33x slower | 0.06x | 0.1144 | 240 B | 3.70x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 457.9 ns | 5.90 ns | 4.61 ns | 455.5 ns | 1.63x slower | 0.03x | 0.4244 | 888 B | 1.00x more | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 308.0 ns | 6.11 ns | 8.96 ns | 304.7 ns | baseline | | 0.4244 | 888 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 261.8 ns | 3.63 ns | 3.22 ns | 261.7 ns | 1.18x faster | 0.05x | 0.4244 | 888 B | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 372.8 ns | 10.41 ns | 30.53 ns | 357.3 ns | 1.22x slower | 0.10x | 0.4015 | 840 B | 1.06x less | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 281.4 ns | 4.07 ns | 4.00 ns | 280.5 ns | 1.10x faster | 0.04x | 0.4244 | 888 B | 1.00x more | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 271.9 ns | 5.42 ns | 12.66 ns | 267.9 ns | 1.12x faster | 0.04x | 0.4320 | 904 B | 1.02x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 462.0 ns | 2.60 ns | 2.17 ns | 462.0 ns | 1.49x slower | 0.06x | 0.4091 | 856 B | 1.04x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,850.4 ns | 33.13 ns | 58.88 ns | 1,832.3 ns | 6.03x slower | 0.22x | 4.1466 | 8689 B | 9.78x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 972.0 ns | 5.34 ns | 4.46 ns | 970.9 ns | 3.13x slower | 0.11x | 0.6695 | 1400 B | 1.58x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 373.0 ns | 3.81 ns | 2.97 ns | 373.6 ns | 1.20x slower | 0.04x | 0.1602 | 336 B | 2.64x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 266.6 ns | 3.24 ns | 2.71 ns | 266.1 ns | 1.16x faster | 0.04x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 399.4 ns | 5.61 ns | 4.38 ns | 397.4 ns | 1.28x slower | 0.05x | 0.1144 | 240 B | 3.70x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 312.0 ns | 3.22 ns | 2.51 ns | 311.5 ns | 1.00x slower | 0.04x | 0.1144 | 240 B | 3.70x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 405.6 ns | 4.41 ns | 4.12 ns | 405.1 ns | 1.31x slower | 0.04x | 0.4244 | 888 B | 1.00x more | diff --git a/Results/List.Int32.ListInt32WhereSelectToList.md b/Results/List.Int32.ListInt32WhereSelectToList.md deleted file mode 100644 index 661b1e47..00000000 --- a/Results/List.Int32.ListInt32WhereSelectToList.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.Int32.ListInt32WhereSelectToList - -### Source -[ListInt32WhereSelectToList.cs](../LinqBenchmarks/List/Int32/ListInt32WhereSelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|---------:|---------:|-----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 263.8 ns | 2.14 ns | 1.79 ns | 263.8 ns | baseline | | 0.3095 | 648 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 288.7 ns | 5.05 ns | 10.55 ns | 284.0 ns | 1.08x slower | 0.03x | 0.3095 | 648 B | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 514.8 ns | 4.87 ns | 4.56 ns | 514.3 ns | 1.95x slower | 0.02x | 0.3824 | 800 B | 1.23x more | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 493.6 ns | 7.07 ns | 6.62 ns | 492.2 ns | 1.87x slower | 0.03x | 0.4396 | 920 B | 1.42x more | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 505.0 ns | 5.24 ns | 4.38 ns | 504.7 ns | 1.91x slower | 0.03x | 0.5617 | 1176 B | 1.81x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 1,112.5 ns | 17.50 ns | 14.61 ns | 1,106.4 ns | 4.22x slower | 0.07x | 0.3090 | 648 B | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,989.9 ns | 21.43 ns | 16.73 ns | 1,989.4 ns | 7.55x slower | 0.08x | 4.2801 | 8962 B | 13.83x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 1,291.4 ns | 15.90 ns | 20.11 ns | 1,286.7 ns | 4.91x slower | 0.09x | 0.5684 | 1192 B | 1.84x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 535.8 ns | 9.83 ns | 8.21 ns | 534.2 ns | 2.03x slower | 0.04x | 0.1755 | 368 B | 1.76x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 309.7 ns | 3.36 ns | 2.81 ns | 309.1 ns | 1.17x slower | 0.01x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 614.7 ns | 6.93 ns | 9.49 ns | 611.1 ns | 2.34x slower | 0.04x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 385.3 ns | 4.45 ns | 4.37 ns | 384.1 ns | 1.46x slower | 0.02x | 0.1297 | 272 B | 2.38x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 475.1 ns | 4.64 ns | 4.56 ns | 473.8 ns | 1.80x slower | 0.02x | 0.3090 | 648 B | 1.00x more | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 241.6 ns | 2.18 ns | 1.82 ns | 241.0 ns | baseline | | 0.3095 | 648 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 242.4 ns | 3.20 ns | 3.00 ns | 241.1 ns | 1.00x slower | 0.01x | 0.3095 | 648 B | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 363.4 ns | 7.10 ns | 7.90 ns | 360.4 ns | 1.51x slower | 0.04x | 0.3824 | 800 B | 1.23x more | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 297.8 ns | 4.46 ns | 3.72 ns | 296.6 ns | 1.23x slower | 0.02x | 0.4396 | 920 B | 1.42x more | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 272.9 ns | 1.96 ns | 1.74 ns | 272.4 ns | 1.13x slower | 0.01x | 0.5622 | 1176 B | 1.81x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 463.3 ns | 4.35 ns | 3.86 ns | 463.3 ns | 1.92x slower | 0.02x | 0.3090 | 648 B | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,801.9 ns | 19.56 ns | 15.27 ns | 1,799.0 ns | 7.46x slower | 0.09x | 4.2801 | 8961 B | 13.83x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,216.7 ns | 34.26 ns | 98.31 ns | 1,162.8 ns | 4.97x slower | 0.28x | 0.5684 | 1192 B | 1.84x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 384.2 ns | 7.54 ns | 7.40 ns | 381.3 ns | 1.59x slower | 0.03x | 0.1760 | 368 B | 1.76x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 277.4 ns | 5.63 ns | 15.68 ns | 269.9 ns | 1.19x slower | 0.10x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 406.3 ns | 8.12 ns | 20.22 ns | 396.4 ns | 1.72x slower | 0.11x | 0.1297 | 272 B | 2.38x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 319.8 ns | 4.08 ns | 3.41 ns | 318.3 ns | 1.32x slower | 0.02x | 0.1297 | 272 B | 2.38x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 345.9 ns | 6.09 ns | 13.62 ns | 339.9 ns | 1.43x slower | 0.06x | 0.3095 | 648 B | 1.00x more | diff --git a/Results/List.ValueType.ListValueTypeContains.md b/Results/List.ValueType.ListValueTypeContains.md deleted file mode 100644 index 8c3cc571..00000000 --- a/Results/List.ValueType.ListValueTypeContains.md +++ /dev/null @@ -1,53 +0,0 @@ -## List.ValueType.ListValueTypeContains - -### Source -[ListValueTypeContains.cs](../LinqBenchmarks/List/ValueType/ListValueTypeContains.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 570.33 ns | 1.496 ns | 1.249 ns | 570.14 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 692.07 ns | 13.330 ns | 22.993 ns | 683.92 ns | 1.21x slower | 0.04x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 223.34 ns | 2.817 ns | 2.893 ns | 222.68 ns | 2.55x faster | 0.04x | - | - | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 207.10 ns | 4.823 ns | 13.761 ns | 199.54 ns | 2.83x faster | 0.14x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 599.26 ns | 15.738 ns | 44.901 ns | 577.85 ns | 1.11x slower | 0.08x | 3.0670 | 6424 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 223.84 ns | 1.153 ns | 1.079 ns | 223.58 ns | 2.55x faster | 0.01x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 430.86 ns | 10.053 ns | 28.843 ns | 414.03 ns | 1.29x faster | 0.09x | 0.0191 | 40 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 432.08 ns | 5.461 ns | 5.363 ns | 431.52 ns | 1.32x faster | 0.01x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 236.92 ns | 4.753 ns | 12.521 ns | 229.72 ns | 2.42x faster | 0.11x | 0.0153 | 32 B | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 539.96 ns | 7.047 ns | 5.502 ns | 537.16 ns | 1.06x faster | 0.01x | 0.0305 | 64 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 265.87 ns | 2.110 ns | 1.762 ns | 265.45 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 353.31 ns | 4.681 ns | 4.807 ns | 352.04 ns | 1.33x slower | 0.02x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 52.62 ns | 0.778 ns | 0.865 ns | 52.27 ns | 5.04x faster | 0.08x | - | - | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 53.80 ns | 0.283 ns | 0.251 ns | 53.75 ns | 4.94x faster | 0.04x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 471.18 ns | 9.020 ns | 7.043 ns | 469.20 ns | 1.77x slower | 0.03x | 3.0670 | 6424 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 53.21 ns | 1.046 ns | 1.887 ns | 52.32 ns | 5.01x faster | 0.16x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 285.85 ns | 2.730 ns | 2.280 ns | 285.23 ns | 1.08x slower | 0.01x | 0.0191 | 40 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 277.32 ns | 2.921 ns | 2.281 ns | 276.44 ns | 1.04x slower | 0.01x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 61.13 ns | 0.886 ns | 1.088 ns | 60.73 ns | 4.36x faster | 0.10x | 0.0153 | 32 B | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 420.12 ns | 4.557 ns | 4.476 ns | 419.20 ns | 1.58x slower | 0.02x | 0.0305 | 64 B | NA | diff --git a/Results/List.ValueType.ListValueTypeDistinct.md b/Results/List.ValueType.ListValueTypeDistinct.md deleted file mode 100644 index f8b9d71a..00000000 --- a/Results/List.ValueType.ListValueTypeDistinct.md +++ /dev/null @@ -1,51 +0,0 @@ -## List.ValueType.ListValueTypeDistinct - -### Source -[ListValueTypeDistinct.cs](../LinqBenchmarks/List/ValueType/ListValueTypeDistinct.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Duplicates | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----------- |------ |----------:|----------:|----------:|----------:|-------------:|--------:|--------:|----------:|----------------:| -| ForLoop | .NET 6 | .NET 6.0 | 4 | 100 | 14.164 μs | 0.3346 μs | 0.9707 μs | 13.666 μs | baseline | | 12.8174 | 26976 B | | -| ForeachLoop | .NET 6 | .NET 6.0 | 4 | 100 | 14.219 μs | 0.2810 μs | 0.7353 μs | 13.882 μs | 1.01x slower | 0.07x | 12.8174 | 26976 B | 1.000x more | -| Linq | .NET 6 | .NET 6.0 | 4 | 100 | 16.482 μs | 0.2573 μs | 0.2643 μs | 16.420 μs | 1.17x slower | 0.05x | 12.8174 | 26912 B | 1.002x less | -| LinqFaster | .NET 6 | .NET 6.0 | 4 | 100 | 2.788 μs | 0.0539 μs | 0.0529 μs | 2.774 μs | 5.08x faster | 0.27x | 0.0076 | 24 B | 1,124.000x less | -| LinqFasterer | .NET 6 | .NET 6.0 | 4 | 100 | 16.468 μs | 0.1213 μs | 0.0947 μs | 16.441 μs | 1.18x slower | 0.05x | 34.8816 | 73168 B | 2.712x more | -| LinqAF | .NET 6 | .NET 6.0 | 4 | 100 | 80.292 μs | 0.5680 μs | 0.4743 μs | 80.283 μs | 5.76x slower | 0.21x | 19.8975 | 41936 B | 1.555x more | -| StructLinq | .NET 6 | .NET 6.0 | 4 | 100 | 14.388 μs | 0.2849 μs | 0.2379 μs | 14.326 μs | 1.03x slower | 0.05x | 0.0305 | 64 B | 421.500x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 4 | 100 | 4.738 μs | 0.0222 μs | 0.0173 μs | 4.732 μs | 2.94x faster | 0.12x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 4 | 100 | 13.078 μs | 0.2580 μs | 0.5876 μs | 12.765 μs | 1.08x faster | 0.10x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 4 | 100 | 12.636 μs | 0.2518 μs | 0.7144 μs | 12.316 μs | baseline | | 12.8937 | 26976 B | | -| ForeachLoop | .NET 8 | .NET 8.0 | 4 | 100 | 13.366 μs | 0.2665 μs | 0.7021 μs | 13.070 μs | 1.06x slower | 0.09x | 12.8937 | 26976 B | 1.000x more | -| Linq | .NET 8 | .NET 8.0 | 4 | 100 | 14.516 μs | 0.3601 μs | 1.0449 μs | 13.966 μs | 1.15x slower | 0.08x | 12.8174 | 26912 B | 1.002x less | -| LinqFaster | .NET 8 | .NET 8.0 | 4 | 100 | 1.923 μs | 0.0366 μs | 0.0501 μs | 1.905 μs | 6.60x faster | 0.39x | 0.0114 | 24 B | 1,124.000x less | -| LinqFasterer | .NET 8 | .NET 8.0 | 4 | 100 | 20.179 μs | 0.7830 μs | 2.2341 μs | 20.915 μs | 1.60x slower | 0.20x | 34.8816 | 73168 B | 2.712x more | -| LinqAF | .NET 8 | .NET 8.0 | 4 | 100 | 64.375 μs | 2.7716 μs | 8.1722 μs | 62.255 μs | 5.15x slower | 0.68x | 20.2637 | 42464 B | 1.574x more | -| StructLinq | .NET 8 | .NET 8.0 | 4 | 100 | 12.136 μs | 0.2415 μs | 0.5970 μs | 11.865 μs | 1.05x faster | 0.08x | 0.0305 | 64 B | 421.500x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 4 | 100 | 3.819 μs | 0.0764 μs | 0.1958 μs | 3.725 μs | 3.31x faster | 0.20x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 4 | 100 | 11.874 μs | 0.1083 μs | 0.0904 μs | 11.855 μs | 1.05x faster | 0.04x | - | - | NA | diff --git a/Results/List.ValueType.ListValueTypeSelect.md b/Results/List.ValueType.ListValueTypeSelect.md deleted file mode 100644 index aedfd65b..00000000 --- a/Results/List.ValueType.ListValueTypeSelect.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.ValueType.ListValueTypeSelect - -### Source -[ListValueTypeSelect.cs](../LinqBenchmarks/List/ValueType/ListValueTypeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|------------:|------------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1,705.1 ns | 30.32 ns | 31.13 ns | 1,690.9 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1,767.4 ns | 31.35 ns | 36.10 ns | 1,755.2 ns | 1.04x slower | 0.03x | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 2,545.1 ns | 20.78 ns | 16.23 ns | 2,541.3 ns | 1.50x slower | 0.03x | 0.0877 | - | 184 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 2,937.8 ns | 55.30 ns | 51.73 ns | 2,936.7 ns | 1.72x slower | 0.05x | 3.0823 | - | 6456 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 3,041.7 ns | 30.01 ns | 23.43 ns | 3,039.3 ns | 1.79x slower | 0.03x | 6.1531 | - | 12880 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2,802.3 ns | 38.63 ns | 36.13 ns | 2,793.5 ns | 1.64x slower | 0.04x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 9,833.6 ns | 136.19 ns | 113.72 ns | 9,828.7 ns | 5.78x slower | 0.15x | 57.1747 | 15.6403 | 137866 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 10,587.9 ns | 76.97 ns | 60.10 ns | 10,581.9 ns | 6.23x slower | 0.11x | 0.3967 | - | 848 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,820.2 ns | 36.27 ns | 54.29 ns | 1,785.9 ns | 1.07x slower | 0.05x | 0.0191 | - | 40 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,738.2 ns | 12.68 ns | 10.59 ns | 1,735.4 ns | 1.02x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,927.2 ns | 35.96 ns | 36.93 ns | 1,909.3 ns | 1.13x slower | 0.03x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,643.1 ns | 23.54 ns | 19.65 ns | 1,637.0 ns | 1.04x faster | 0.02x | - | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 3,546.5 ns | 77.61 ns | 225.17 ns | 3,421.5 ns | 2.07x slower | 0.17x | 7.7820 | - | 16304 B | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 837.9 ns | 14.60 ns | 12.19 ns | 831.5 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 901.4 ns | 6.81 ns | 6.04 ns | 900.8 ns | 1.08x slower | 0.02x | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,917.9 ns | 20.31 ns | 15.86 ns | 1,911.2 ns | 2.29x slower | 0.03x | 0.0877 | - | 184 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 2,453.0 ns | 35.71 ns | 27.88 ns | 2,442.9 ns | 2.93x slower | 0.03x | 3.0861 | - | 6456 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 2,712.5 ns | 31.63 ns | 26.42 ns | 2,714.4 ns | 3.24x slower | 0.05x | 6.1531 | - | 12880 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 2,126.7 ns | 37.18 ns | 42.82 ns | 2,110.7 ns | 2.55x slower | 0.08x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 14,289.1 ns | 489.84 ns | 1,421.13 ns | 13,573.6 ns | 19.53x slower | 1.66x | 60.5316 | 15.1520 | 137884 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 10,096.6 ns | 199.44 ns | 504.02 ns | 9,862.3 ns | 12.25x slower | 0.59x | 0.3967 | - | 848 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1,726.6 ns | 33.76 ns | 33.15 ns | 1,713.0 ns | 2.07x slower | 0.06x | 0.0191 | - | 40 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 756.1 ns | 10.88 ns | 9.08 ns | 752.9 ns | 1.11x faster | 0.01x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 1,650.6 ns | 32.44 ns | 30.35 ns | 1,639.9 ns | 1.97x slower | 0.03x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 856.7 ns | 16.48 ns | 16.92 ns | 847.5 ns | 1.03x slower | 0.03x | - | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 3,051.9 ns | 49.06 ns | 38.30 ns | 3,042.9 ns | 3.64x slower | 0.09x | 7.7820 | - | 16304 B | NA | diff --git a/Results/List.ValueType.ListValueTypeSelectSum.md b/Results/List.ValueType.ListValueTypeSelectSum.md deleted file mode 100644 index f806119d..00000000 --- a/Results/List.ValueType.ListValueTypeSelectSum.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.ValueType.ListValueTypeSelectSum - -### Source -[ListValueTypeSelectSum.cs](../LinqBenchmarks/List/ValueType/ListValueTypeSelectSum.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------------:|----------:|----------:|------------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 213.72 ns | 1.608 ns | 1.343 ns | 213.46 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 348.53 ns | 5.685 ns | 4.439 ns | 347.43 ns | 1.63x slower | 0.02x | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,386.88 ns | 26.942 ns | 21.035 ns | 1,379.61 ns | 6.49x slower | 0.12x | 0.0458 | 96 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 423.09 ns | 7.997 ns | 17.887 ns | 412.63 ns | 1.99x slower | 0.09x | - | - | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 646.99 ns | 18.355 ns | 52.070 ns | 618.91 ns | 3.02x slower | 0.27x | 3.0670 | 6424 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 994.64 ns | 19.736 ns | 35.081 ns | 988.19 ns | 4.70x slower | 0.13x | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 1,105.75 ns | 20.823 ns | 16.257 ns | 1,099.35 ns | 5.18x slower | 0.09x | 0.0572 | 120 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 688.72 ns | 10.903 ns | 9.104 ns | 685.02 ns | 3.22x slower | 0.04x | 0.1717 | 360 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 203.86 ns | 1.186 ns | 1.109 ns | 203.30 ns | 1.05x faster | 0.01x | 0.0191 | 40 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 87.27 ns | 1.644 ns | 1.373 ns | 86.71 ns | 2.45x faster | 0.04x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 455.40 ns | 9.068 ns | 21.197 ns | 444.07 ns | 2.13x slower | 0.09x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 739.25 ns | 14.247 ns | 15.244 ns | 730.90 ns | 3.48x slower | 0.07x | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 1,248.61 ns | 19.377 ns | 16.181 ns | 1,248.17 ns | 5.84x slower | 0.08x | 0.5836 | 1224 B | NA | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 107.67 ns | 1.703 ns | 2.028 ns | 106.70 ns | baseline | | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 329.87 ns | 3.429 ns | 2.864 ns | 328.66 ns | 3.05x slower | 0.08x | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 460.01 ns | 8.985 ns | 19.910 ns | 451.24 ns | 4.25x slower | 0.22x | 0.0458 | 96 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 142.70 ns | 1.481 ns | 1.312 ns | 142.59 ns | 1.32x slower | 0.03x | - | - | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 561.92 ns | 5.496 ns | 4.872 ns | 560.56 ns | 5.20x slower | 0.12x | 3.0670 | 6424 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 592.25 ns | 1.695 ns | 1.416 ns | 592.56 ns | 5.48x slower | 0.12x | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 1,045.30 ns | 5.424 ns | 4.808 ns | 1,043.44 ns | 9.67x slower | 0.22x | 0.0572 | 120 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 564.10 ns | 6.403 ns | 8.098 ns | 562.90 ns | 5.25x slower | 0.10x | 0.1717 | 360 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 180.89 ns | 2.693 ns | 3.101 ns | 180.00 ns | 1.68x slower | 0.05x | 0.0191 | 40 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 60.35 ns | 0.471 ns | 0.393 ns | 60.25 ns | 1.79x faster | 0.04x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 104.31 ns | 2.204 ns | 6.288 ns | 100.84 ns | 1.03x faster | 0.06x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 96.08 ns | 1.958 ns | 1.736 ns | 95.27 ns | 1.13x faster | 0.03x | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 411.92 ns | 8.896 ns | 25.091 ns | 397.69 ns | 3.89x slower | 0.32x | 0.5660 | 1184 B | NA | diff --git a/Results/List.ValueType.ListValueTypeSkipTakeSelect.md b/Results/List.ValueType.ListValueTypeSkipTakeSelect.md deleted file mode 100644 index fc228603..00000000 --- a/Results/List.ValueType.ListValueTypeSkipTakeSelect.md +++ /dev/null @@ -1,55 +0,0 @@ -## List.ValueType.ListValueTypeSkipTakeSelect - -### Source -[ListValueTypeSkipTakeSelect.cs](../LinqBenchmarks/List/ValueType/ListValueTypeSkipTakeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|----------:|------------:|------------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 2,380.2 ns | 8.87 ns | 7.41 ns | 2,382.0 ns | baseline | | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 2,561.8 ns | 32.81 ns | 25.61 ns | 2,551.8 ns | 1.08x slower | 0.01x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 6,581.0 ns | 101.47 ns | 94.91 ns | 6,550.4 ns | 2.77x slower | 0.04x | 9.2545 | - | 19368 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 7,710.1 ns | 120.46 ns | 106.79 ns | 7,705.7 ns | 3.24x slower | 0.05x | 38.4521 | - | 83304 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 9,914.7 ns | 190.85 ns | 267.54 ns | 9,817.7 ns | 4.13x slower | 0.09x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 19,556.4 ns | 483.12 ns | 1,346.75 ns | 18,849.3 ns | 8.23x slower | 0.68x | 49.9878 | 16.6626 | 137863 B | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 20,060.4 ns | 278.58 ns | 433.72 ns | 19,896.1 ns | 8.47x slower | 0.25x | 0.5493 | - | 1176 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,811.3 ns | 33.97 ns | 40.44 ns | 1,792.1 ns | 1.31x faster | 0.03x | 0.0572 | - | 120 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 1,703.1 ns | 32.82 ns | 27.41 ns | 1,698.0 ns | 1.40x faster | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,914.3 ns | 6.74 ns | 5.63 ns | 1,913.5 ns | 1.24x faster | 0.01x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 1,768.0 ns | 28.22 ns | 28.98 ns | 1,756.2 ns | 1.34x faster | 0.02x | - | - | - | NA | -| | | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 810.0 ns | 4.53 ns | 3.54 ns | 808.6 ns | baseline | | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,899.5 ns | 37.14 ns | 42.77 ns | 1,883.4 ns | 2.32x slower | 0.03x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 3,691.8 ns | 88.22 ns | 258.75 ns | 3,553.2 ns | 4.65x slower | 0.38x | 9.2583 | - | 19368 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 7,485.5 ns | 135.06 ns | 269.73 ns | 7,366.4 ns | 9.45x slower | 0.43x | 38.4521 | - | 83304 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 7,063.8 ns | 106.43 ns | 126.69 ns | 6,991.7 ns | 8.74x slower | 0.16x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 21,478.2 ns | 221.97 ns | 173.30 ns | 21,385.8 ns | 26.52x slower | 0.25x | 60.5774 | 15.1367 | 137884 B | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 15,269.8 ns | 136.98 ns | 114.38 ns | 15,222.0 ns | 18.84x slower | 0.17x | 0.5493 | - | 1176 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,683.4 ns | 22.71 ns | 18.96 ns | 1,677.8 ns | 2.08x slower | 0.02x | 0.0572 | - | 120 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 792.8 ns | 15.91 ns | 31.40 ns | 800.2 ns | 1.02x slower | 0.03x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 1,595.4 ns | 23.62 ns | 19.73 ns | 1,588.8 ns | 1.97x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 859.6 ns | 16.13 ns | 15.08 ns | 852.3 ns | 1.06x slower | 0.02x | - | - | - | NA | diff --git a/Results/List.ValueType.ListValueTypeSkipTakeWhere.md b/Results/List.ValueType.ListValueTypeSkipTakeWhere.md deleted file mode 100644 index 0c1f0dc3..00000000 --- a/Results/List.ValueType.ListValueTypeSkipTakeWhere.md +++ /dev/null @@ -1,55 +0,0 @@ -## List.ValueType.ListValueTypeSkipTakeWhere - -### Source -[ListValueTypeSkipTakeWhere.cs](../LinqBenchmarks/List/ValueType/ListValueTypeSkipTakeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Skip | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |----- |------ |------------:|----------:|------------:|------------:|--------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 1000 | 100 | 535.0 ns | 5.78 ns | 5.12 ns | 533.1 ns | baseline | | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,923.8 ns | 11.99 ns | 10.02 ns | 1,922.3 ns | 3.60x slower | 0.04x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 1000 | 100 | 4,357.7 ns | 86.64 ns | 234.24 ns | 4,233.8 ns | 8.19x slower | 0.51x | 10.0250 | - | 21000 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 1000 | 100 | 6,667.2 ns | 132.98 ns | 368.47 ns | 6,472.5 ns | 12.34x slower | 0.46x | 37.0331 | - | 80168 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 1000 | 100 | 10,394.4 ns | 162.78 ns | 152.27 ns | 10,349.8 ns | 19.45x slower | 0.32x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 1000 | 100 | 15,629.3 ns | 307.58 ns | 836.80 ns | 15,358.3 ns | 29.37x slower | 1.58x | 62.4390 | 0.0305 | 134733 B | NA | -| Streams | .NET 6 | .NET 6.0 | 1000 | 100 | 9,985.4 ns | 133.67 ns | 118.50 ns | 9,945.8 ns | 18.66x slower | 0.32x | 0.5493 | - | 1176 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 1000 | 100 | 888.9 ns | 13.70 ns | 13.46 ns | 884.1 ns | 1.66x slower | 0.03x | 0.0572 | - | 120 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 879.6 ns | 8.15 ns | 6.36 ns | 877.9 ns | 1.64x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 1000 | 100 | 1,054.9 ns | 14.70 ns | 19.11 ns | 1,047.9 ns | 1.98x slower | 0.05x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 1000 | 100 | 1,853.0 ns | 36.23 ns | 35.59 ns | 1,837.9 ns | 3.46x slower | 0.09x | - | - | - | NA | -| | | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 1000 | 100 | 463.0 ns | 4.60 ns | 3.59 ns | 462.0 ns | baseline | | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 1000 | 100 | 977.5 ns | 18.58 ns | 24.81 ns | 966.7 ns | 2.12x slower | 0.07x | 0.1526 | - | 320 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 1000 | 100 | 2,636.7 ns | 52.65 ns | 146.77 ns | 2,587.3 ns | 5.81x slower | 0.28x | 10.0250 | - | 21000 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 1000 | 100 | 5,949.8 ns | 116.91 ns | 195.32 ns | 5,863.2 ns | 12.91x slower | 0.44x | 37.7350 | - | 80168 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 1000 | 100 | 5,193.4 ns | 96.18 ns | 211.13 ns | 5,114.2 ns | 11.47x slower | 0.46x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 1000 | 100 | 21,076.9 ns | 406.19 ns | 1,084.22 ns | 21,005.5 ns | 44.73x slower | 2.80x | 58.4106 | 15.0757 | 134747 B | NA | -| Streams | .NET 8 | .NET 8.0 | 1000 | 100 | 7,113.7 ns | 62.56 ns | 52.24 ns | 7,096.4 ns | 15.35x slower | 0.18x | 0.5493 | - | 1176 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 1000 | 100 | 504.1 ns | 4.49 ns | 3.75 ns | 503.2 ns | 1.09x slower | 0.01x | 0.0572 | - | 120 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 473.7 ns | 1.77 ns | 1.38 ns | 473.7 ns | 1.02x slower | 0.01x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 1000 | 100 | 521.9 ns | 10.17 ns | 9.52 ns | 517.1 ns | 1.13x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 1000 | 100 | 554.2 ns | 4.65 ns | 3.63 ns | 553.2 ns | 1.20x slower | 0.01x | - | - | - | NA | diff --git a/Results/List.ValueType.ListValueTypeWhere.md b/Results/List.ValueType.ListValueTypeWhere.md deleted file mode 100644 index 4c447ce8..00000000 --- a/Results/List.ValueType.ListValueTypeWhere.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.ValueType.ListValueTypeWhere - -### Source -[ListValueTypeWhere.cs](../LinqBenchmarks/List/ValueType/ListValueTypeWhere.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|--------------:|--------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 578.6 ns | 3.08 ns | 2.57 ns | 578.3 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 678.2 ns | 7.63 ns | 6.37 ns | 676.9 ns | 1.17x slower | 0.01x | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,385.4 ns | 27.72 ns | 65.33 ns | 1,357.9 ns | 2.39x slower | 0.11x | 0.0877 | - | 184 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1,517.2 ns | 38.60 ns | 111.99 ns | 1,463.7 ns | 2.62x slower | 0.21x | 3.8605 | - | 8088 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 1,767.9 ns | 35.32 ns | 47.15 ns | 1,771.0 ns | 3.03x slower | 0.05x | 4.7379 | - | 9936 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2,034.9 ns | 46.50 ns | 126.50 ns | 2,061.8 ns | 3.25x slower | 0.23x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7,777.2 ns | 118.10 ns | 104.70 ns | 7,757.3 ns | 13.46x slower | 0.17x | 62.4847 | 0.0153 | 134925 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 2,196.5 ns | 42.85 ns | 65.44 ns | 2,173.9 ns | 3.80x slower | 0.13x | 0.4044 | - | 848 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 619.4 ns | 3.17 ns | 2.48 ns | 619.4 ns | 1.07x slower | 0.01x | 0.0191 | - | 40 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 531.1 ns | 2.09 ns | 1.63 ns | 530.6 ns | 1.09x faster | 0.01x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,072.8 ns | 10.86 ns | 8.48 ns | 1,071.4 ns | 1.85x slower | 0.02x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 855.1 ns | 4.67 ns | 4.37 ns | 854.7 ns | 1.48x slower | 0.01x | - | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 1,721.3 ns | 21.76 ns | 18.17 ns | 1,718.5 ns | 2.97x slower | 0.03x | 3.8605 | - | 8088 B | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 498.2 ns | 5.74 ns | 4.49 ns | 497.0 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 597.6 ns | 10.78 ns | 9.00 ns | 593.5 ns | 1.20x slower | 0.02x | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 799.8 ns | 14.13 ns | 27.90 ns | 786.2 ns | 1.63x slower | 0.06x | 0.0877 | - | 184 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,295.2 ns | 24.32 ns | 22.75 ns | 1,288.7 ns | 2.61x slower | 0.04x | 3.8605 | - | 8088 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 1,333.9 ns | 20.60 ns | 22.89 ns | 1,332.8 ns | 2.67x slower | 0.07x | 4.7379 | - | 9936 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 801.6 ns | 16.00 ns | 38.63 ns | 788.6 ns | 1.62x slower | 0.09x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 8,054.5 ns | 160.61 ns | 362.52 ns | 8,159.5 ns | 15.49x slower | 0.53x | 62.4695 | 0.0153 | 134906 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 1,599.3 ns | 21.61 ns | 16.87 ns | 1,596.2 ns | 3.21x slower | 0.03x | 0.4044 | - | 848 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 530.3 ns | 6.62 ns | 5.16 ns | 528.1 ns | 1.06x slower | 0.01x | 0.0191 | - | 40 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 509.4 ns | 8.34 ns | 6.96 ns | 507.4 ns | 1.02x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 567.1 ns | 2.54 ns | 1.98 ns | 567.3 ns | 1.14x slower | 0.01x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 535.5 ns | 3.38 ns | 3.00 ns | 533.8 ns | 1.07x slower | 0.01x | - | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1,318.3 ns | 11.94 ns | 9.32 ns | 1,315.8 ns | 2.65x slower | 0.03x | 3.8605 | - | 8088 B | NA | diff --git a/Results/List.ValueType.ListValueTypeWhereSelect.md b/Results/List.ValueType.ListValueTypeWhereSelect.md deleted file mode 100644 index 05f845fb..00000000 --- a/Results/List.ValueType.ListValueTypeWhereSelect.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.ValueType.ListValueTypeWhereSelect - -### Source -[ListValueTypeWhereSelect.cs](../LinqBenchmarks/List/ValueType/ListValueTypeWhereSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|--------------:|--------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1,364.1 ns | 12.76 ns | 9.97 ns | 1,361.7 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1,097.7 ns | 20.48 ns | 29.38 ns | 1,084.2 ns | 1.25x faster | 0.03x | - | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,777.5 ns | 19.87 ns | 15.51 ns | 1,772.2 ns | 1.30x slower | 0.02x | 0.1793 | - | 376 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 2,235.4 ns | 42.05 ns | 71.40 ns | 2,207.3 ns | 1.65x slower | 0.07x | 3.8605 | - | 8088 B | NA | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 2,470.8 ns | 37.20 ns | 34.80 ns | 2,475.2 ns | 1.81x slower | 0.03x | 6.4087 | - | 13416 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2,479.1 ns | 29.97 ns | 23.40 ns | 2,473.9 ns | 1.82x slower | 0.02x | - | - | - | NA | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7,988.5 ns | 119.37 ns | 122.58 ns | 7,971.8 ns | 5.87x slower | 0.11x | 62.4847 | - | 134925 B | NA | -| Streams | .NET 6 | .NET 6.0 | 100 | 7,599.3 ns | 50.13 ns | 44.44 ns | 7,587.1 ns | 5.57x slower | 0.06x | 0.4730 | - | 1000 B | NA | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,169.6 ns | 9.56 ns | 7.98 ns | 1,167.8 ns | 1.17x faster | 0.01x | 0.0343 | - | 72 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,045.9 ns | 9.76 ns | 8.15 ns | 1,043.0 ns | 1.30x faster | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,509.3 ns | 30.01 ns | 71.32 ns | 1,467.4 ns | 1.10x slower | 0.05x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,245.6 ns | 6.41 ns | 5.01 ns | 1,245.5 ns | 1.10x faster | 0.01x | - | - | - | NA | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 2,187.3 ns | 33.74 ns | 69.68 ns | 2,172.1 ns | 1.57x slower | 0.03x | 3.8605 | - | 8088 B | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 495.5 ns | 2.03 ns | 1.90 ns | 495.4 ns | baseline | | - | - | - | NA | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 584.5 ns | 2.64 ns | 2.20 ns | 584.1 ns | 1.18x slower | 0.01x | - | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,221.8 ns | 18.26 ns | 20.30 ns | 1,212.0 ns | 2.47x slower | 0.05x | 0.1793 | - | 376 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,688.9 ns | 21.77 ns | 25.07 ns | 1,683.0 ns | 3.41x slower | 0.05x | 3.8605 | - | 8088 B | NA | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 1,983.1 ns | 37.69 ns | 33.41 ns | 1,971.2 ns | 4.00x slower | 0.07x | 6.4087 | - | 13416 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1,321.1 ns | 7.90 ns | 6.17 ns | 1,318.9 ns | 2.66x slower | 0.01x | - | - | - | NA | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 7,888.0 ns | 136.73 ns | 191.68 ns | 7,821.3 ns | 16.04x slower | 0.49x | 62.4542 | 0.0305 | 134906 B | NA | -| Streams | .NET 8 | .NET 8.0 | 100 | 6,321.0 ns | 111.48 ns | 93.09 ns | 6,314.2 ns | 12.75x slower | 0.19x | 0.4730 | - | 1000 B | NA | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1,063.1 ns | 20.76 ns | 21.32 ns | 1,054.2 ns | 2.15x slower | 0.05x | 0.0343 | - | 72 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 532.2 ns | 9.73 ns | 8.62 ns | 527.2 ns | 1.07x slower | 0.02x | - | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 1,010.9 ns | 17.95 ns | 14.99 ns | 1,004.1 ns | 2.04x slower | 0.03x | - | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 567.1 ns | 8.77 ns | 10.77 ns | 563.0 ns | 1.15x slower | 0.02x | - | - | - | NA | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1,729.7 ns | 34.47 ns | 87.74 ns | 1,697.7 ns | 3.54x slower | 0.18x | 3.8605 | - | 8088 B | NA | diff --git a/Results/List.ValueType.ListValueTypeWhereSelectToArray.md b/Results/List.ValueType.ListValueTypeWhereSelectToArray.md deleted file mode 100644 index 75303795..00000000 --- a/Results/List.ValueType.ListValueTypeWhereSelectToArray.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.ValueType.ListValueTypeWhereSelectToArray - -### Source -[ListValueTypeWhereSelectToArray.cs](../LinqBenchmarks/List/ValueType/ListValueTypeWhereSelectToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |-----------:|----------:|----------:|-----------:|-------------:|--------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1,542.3 ns | 28.92 ns | 22.58 ns | 1,542.8 ns | baseline | | 5.5237 | - | 11.3 KB | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1,658.0 ns | 39.68 ns | 114.49 ns | 1,605.6 ns | 1.12x slower | 0.10x | 5.5237 | - | 11.3 KB | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 1,735.9 ns | 37.97 ns | 107.09 ns | 1,687.9 ns | 1.14x slower | 0.07x | 4.0035 | - | 8.19 KB | 1.38x less | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1,922.2 ns | 57.33 ns | 169.03 ns | 1,833.0 ns | 1.28x slower | 0.14x | 5.5237 | - | 11.3 KB | 1.00x more | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 1,905.5 ns | 44.85 ns | 129.39 ns | 1,843.2 ns | 1.22x slower | 0.10x | 6.3953 | - | 13.07 KB | 1.16x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 3,270.3 ns | 80.59 ns | 232.51 ns | 3,161.3 ns | 2.13x slower | 0.15x | 5.5084 | - | 11.27 KB | 1.00x less | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 8,042.9 ns | 150.81 ns | 117.74 ns | 8,014.4 ns | 5.22x slower | 0.12x | 52.0782 | 10.4065 | 131.73 KB | 11.66x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 7,644.2 ns | 241.00 ns | 710.60 ns | 7,259.1 ns | 5.07x slower | 0.58x | 5.7678 | - | 11.8 KB | 1.04x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1,414.0 ns | 27.38 ns | 22.86 ns | 1,413.1 ns | 1.09x faster | 0.03x | 1.7090 | - | 3.5 KB | 3.23x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,086.4 ns | 21.77 ns | 52.59 ns | 1,069.3 ns | 1.37x faster | 0.10x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1,716.6 ns | 33.02 ns | 92.06 ns | 1,677.6 ns | 1.12x slower | 0.07x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1,352.9 ns | 26.97 ns | 75.63 ns | 1,312.0 ns | 1.16x faster | 0.05x | 1.6575 | - | 3.4 KB | 3.32x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 1,827.5 ns | 39.31 ns | 110.22 ns | 1,772.5 ns | 1.23x slower | 0.09x | 5.5237 | - | 11.3 KB | 1.00x more | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 1,342.9 ns | 26.75 ns | 67.61 ns | 1,317.8 ns | baseline | | 5.5237 | - | 11.3 KB | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 1,488.9 ns | 35.11 ns | 100.18 ns | 1,443.5 ns | 1.11x slower | 0.10x | 5.5237 | - | 11.3 KB | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 1,243.4 ns | 21.49 ns | 40.37 ns | 1,232.2 ns | 1.09x faster | 0.07x | 4.0035 | - | 8.19 KB | 1.38x less | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1,398.6 ns | 11.60 ns | 12.89 ns | 1,395.9 ns | 1.04x slower | 0.04x | 5.5237 | - | 11.3 KB | 1.00x more | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 1,592.2 ns | 23.94 ns | 25.62 ns | 1,584.9 ns | 1.18x slower | 0.05x | 6.3953 | - | 13.07 KB | 1.16x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1,900.4 ns | 15.72 ns | 13.93 ns | 1,896.3 ns | 1.41x slower | 0.06x | 5.5084 | - | 11.27 KB | 1.00x less | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 8,236.2 ns | 153.60 ns | 136.16 ns | 8,192.4 ns | 6.09x slower | 0.25x | 52.0782 | 10.4065 | 131.71 KB | 11.66x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 6,757.2 ns | 40.90 ns | 36.25 ns | 6,744.4 ns | 5.00x slower | 0.20x | 5.7678 | - | 11.8 KB | 1.04x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1,097.6 ns | 9.74 ns | 8.14 ns | 1,097.4 ns | 1.24x faster | 0.05x | 1.7109 | - | 3.5 KB | 3.23x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 950.3 ns | 7.13 ns | 5.57 ns | 949.7 ns | 1.43x faster | 0.06x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 991.7 ns | 19.79 ns | 16.52 ns | 987.2 ns | 1.37x faster | 0.07x | 1.6575 | - | 3.4 KB | 3.32x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 1,010.7 ns | 5.59 ns | 4.37 ns | 1,009.4 ns | 1.35x faster | 0.06x | 1.6575 | - | 3.4 KB | 3.32x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1,420.0 ns | 27.97 ns | 21.84 ns | 1,417.7 ns | 1.05x slower | 0.04x | 5.5237 | - | 11.3 KB | 1.00x more | diff --git a/Results/List.ValueType.ListValueTypeWhereSelectToList.md b/Results/List.ValueType.ListValueTypeWhereSelectToList.md deleted file mode 100644 index 7d892868..00000000 --- a/Results/List.ValueType.ListValueTypeWhereSelectToList.md +++ /dev/null @@ -1,59 +0,0 @@ -## List.ValueType.ListValueTypeWhereSelectToList - -### Source -[ListValueTypeWhereSelectToList.cs](../LinqBenchmarks/List/ValueType/ListValueTypeWhereSelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |---------:|----------:|----------:|----------:|-------------:|--------:|--------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 100 | 1.870 μs | 0.0371 μs | 0.0837 μs | 1.8364 μs | baseline | | 3.8605 | 7.9 KB | | -| ForeachLoop | .NET 6 | .NET 6.0 | 100 | 1.380 μs | 0.0200 μs | 0.0156 μs | 1.3775 μs | 1.39x faster | 0.08x | 3.8605 | 7.9 KB | 1.00x more | -| Linq | .NET 6 | .NET 6.0 | 100 | 1.616 μs | 0.0153 μs | 0.0119 μs | 1.6149 μs | 1.18x faster | 0.07x | 4.0436 | 8.27 KB | 1.05x more | -| LinqFaster | .NET 6 | .NET 6.0 | 100 | 1.879 μs | 0.0129 μs | 0.0114 μs | 1.8779 μs | 1.01x faster | 0.05x | 5.5389 | 11.33 KB | 1.43x more | -| LinqFasterer | .NET 6 | .NET 6.0 | 100 | 2.076 μs | 0.0197 μs | 0.0185 μs | 2.0774 μs | 1.10x slower | 0.06x | 8.0643 | 16.5 KB | 2.09x more | -| LinqAF | .NET 6 | .NET 6.0 | 100 | 2.963 μs | 0.0419 μs | 0.0371 μs | 2.9704 μs | 1.56x slower | 0.09x | 3.8605 | 7.9 KB | 1.00x more | -| LinqOptimizer | .NET 6 | .NET 6.0 | 100 | 7.946 μs | 0.1525 μs | 0.1756 μs | 7.9195 μs | 4.23x slower | 0.26x | 64.5142 | 135.16 KB | 17.11x more | -| Streams | .NET 6 | .NET 6.0 | 100 | 7.100 μs | 0.0531 μs | 0.0497 μs | 7.0858 μs | 3.75x slower | 0.19x | 4.1199 | 8.43 KB | 1.07x more | -| StructLinq | .NET 6 | .NET 6.0 | 100 | 1.396 μs | 0.0073 μs | 0.0081 μs | 1.3940 μs | 1.35x faster | 0.07x | 1.7262 | 3.53 KB | 2.24x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1.117 μs | 0.0101 μs | 0.0079 μs | 1.1154 μs | 1.71x faster | 0.10x | 1.6766 | 3.43 KB | 2.30x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 100 | 1.595 μs | 0.0169 μs | 0.0166 μs | 1.5895 μs | 1.19x faster | 0.06x | 1.6766 | 3.43 KB | 2.30x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 100 | 1.412 μs | 0.0282 μs | 0.0732 μs | 1.3759 μs | 1.33x faster | 0.09x | 1.6766 | 3.43 KB | 2.30x less | -| Faslinq | .NET 6 | .NET 6.0 | 100 | 1.580 μs | 0.0316 μs | 0.0881 μs | 1.5499 μs | 1.19x faster | 0.09x | 3.8605 | 7.9 KB | 1.00x more | -| | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 100 | 1.111 μs | 0.0174 μs | 0.0145 μs | 1.1124 μs | baseline | | 3.8605 | 7.9 KB | | -| ForeachLoop | .NET 8 | .NET 8.0 | 100 | 1.193 μs | 0.0201 μs | 0.0178 μs | 1.1842 μs | 1.07x slower | 0.02x | 3.8605 | 7.9 KB | 1.00x more | -| Linq | .NET 8 | .NET 8.0 | 100 | 1.166 μs | 0.0216 μs | 0.0303 μs | 1.1547 μs | 1.05x slower | 0.04x | 4.0436 | 8.27 KB | 1.05x more | -| LinqFaster | .NET 8 | .NET 8.0 | 100 | 1.423 μs | 0.0272 μs | 0.0212 μs | 1.4213 μs | 1.28x slower | 0.02x | 5.5389 | 11.33 KB | 1.43x more | -| LinqFasterer | .NET 8 | .NET 8.0 | 100 | 1.832 μs | 0.0438 μs | 0.1250 μs | 1.7760 μs | 1.60x slower | 0.06x | 8.0643 | 16.5 KB | 2.09x more | -| LinqAF | .NET 8 | .NET 8.0 | 100 | 1.636 μs | 0.0389 μs | 0.1122 μs | 1.5862 μs | 1.45x slower | 0.08x | 3.8605 | 7.9 KB | 1.00x more | -| LinqOptimizer | .NET 8 | .NET 8.0 | 100 | 7.995 μs | 0.1404 μs | 0.2495 μs | 7.9033 μs | 7.31x slower | 0.37x | 64.5142 | 135.14 KB | 17.11x more | -| Streams | .NET 8 | .NET 8.0 | 100 | 6.821 μs | 0.1144 μs | 0.1014 μs | 6.7829 μs | 6.12x slower | 0.09x | 4.1199 | 8.43 KB | 1.07x more | -| StructLinq | .NET 8 | .NET 8.0 | 100 | 1.103 μs | 0.0105 μs | 0.0088 μs | 1.1006 μs | 1.01x faster | 0.02x | 1.7262 | 3.53 KB | 2.24x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 1.002 μs | 0.0124 μs | 0.0104 μs | 0.9993 μs | 1.11x faster | 0.02x | 1.6766 | 3.43 KB | 2.30x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 100 | 1.036 μs | 0.0094 μs | 0.0088 μs | 1.0341 μs | 1.07x faster | 0.02x | 1.6766 | 3.43 KB | 2.30x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 100 | 1.012 μs | 0.0114 μs | 0.0101 μs | 1.0090 μs | 1.10x faster | 0.02x | 1.6766 | 3.43 KB | 2.30x less | -| Faslinq | .NET 8 | .NET 8.0 | 100 | 1.113 μs | 0.0114 μs | 0.0107 μs | 1.1098 μs | 1.00x slower | 0.02x | 3.8605 | 7.9 KB | 1.00x more | diff --git a/Results/Range.Range.md b/Results/Range.Range.md deleted file mode 100644 index 9f76e81c..00000000 --- a/Results/Range.Range.md +++ /dev/null @@ -1,47 +0,0 @@ -## Range.Range - -### Source -[Range.cs](../LinqBenchmarks/Range/Range.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Start | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|---------------- |------- |--------- |------ |------ |----------:|---------:|---------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 0 | 100 | 34.55 ns | 0.724 ns | 1.479 ns | 33.81 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 0 | 100 | 394.07 ns | 7.153 ns | 8.237 ns | 390.43 ns | 11.39x slower | 0.51x | 0.0191 | 40 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 0 | 100 | 109.49 ns | 1.395 ns | 1.165 ns | 109.33 ns | 3.21x slower | 0.13x | 0.2027 | 424 B | NA | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 83.93 ns | 1.336 ns | 1.043 ns | 83.61 ns | 2.48x slower | 0.07x | 0.2027 | 424 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 0 | 100 | 164.21 ns | 1.097 ns | 0.916 ns | 163.93 ns | 4.81x slower | 0.16x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 0 | 100 | 34.97 ns | 0.717 ns | 0.853 ns | 34.61 ns | 1.01x slower | 0.05x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 0 | 100 | 42.06 ns | 0.488 ns | 0.381 ns | 41.94 ns | 1.24x slower | 0.03x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 0 | 100 | 33.60 ns | 0.198 ns | 0.155 ns | 33.55 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 0 | 100 | 194.91 ns | 3.309 ns | 3.095 ns | 195.22 ns | 5.81x slower | 0.11x | 0.0191 | 40 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 0 | 100 | 110.88 ns | 2.002 ns | 1.563 ns | 110.49 ns | 3.30x slower | 0.05x | 0.2027 | 424 B | NA | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 81.52 ns | 0.662 ns | 0.552 ns | 81.40 ns | 2.42x slower | 0.02x | 0.2027 | 424 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 0 | 100 | 164.67 ns | 0.787 ns | 0.614 ns | 164.56 ns | 4.90x slower | 0.02x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 0 | 100 | 36.15 ns | 0.743 ns | 0.826 ns | 35.99 ns | 1.08x slower | 0.02x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 0 | 100 | 41.17 ns | 0.520 ns | 0.434 ns | 40.98 ns | 1.22x slower | 0.01x | - | - | NA | diff --git a/Results/Range.RangeSelect.md b/Results/Range.RangeSelect.md deleted file mode 100644 index 64f60e4d..00000000 --- a/Results/Range.RangeSelect.md +++ /dev/null @@ -1,51 +0,0 @@ -## Range.RangeSelect - -### Source -[RangeSelect.cs](../LinqBenchmarks/Range/RangeSelect.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Start | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|------------------------- |------- |--------- |------ |------ |----------:|----------:|---------:|----------:|--------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 0 | 100 | 43.60 ns | 0.291 ns | 0.323 ns | 43.52 ns | baseline | | - | - | NA | -| Linq | .NET 6 | .NET 6.0 | 0 | 100 | 649.02 ns | 11.268 ns | 8.797 ns | 646.38 ns | 14.89x slower | 0.23x | 0.0420 | 88 B | NA | -| LinqFaster | .NET 6 | .NET 6.0 | 0 | 100 | 365.35 ns | 4.176 ns | 4.469 ns | 364.52 ns | 8.38x slower | 0.11x | 0.4053 | 848 B | NA | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 147.41 ns | 2.985 ns | 8.320 ns | 145.14 ns | 3.42x slower | 0.24x | 0.4053 | 848 B | NA | -| LinqAF | .NET 6 | .NET 6.0 | 0 | 100 | 215.47 ns | 2.927 ns | 2.875 ns | 214.47 ns | 4.94x slower | 0.08x | - | - | NA | -| StructLinq | .NET 6 | .NET 6.0 | 0 | 100 | 205.72 ns | 2.914 ns | 2.275 ns | 205.13 ns | 4.72x slower | 0.07x | 0.0114 | 24 B | NA | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 0 | 100 | 166.24 ns | 2.378 ns | 2.108 ns | 165.73 ns | 3.81x slower | 0.06x | - | - | NA | -| Hyperlinq | .NET 6 | .NET 6.0 | 0 | 100 | 234.41 ns | 4.714 ns | 8.380 ns | 229.73 ns | 5.38x slower | 0.20x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 0 | 100 | 170.07 ns | 0.795 ns | 0.664 ns | 169.94 ns | 3.90x slower | 0.04x | - | - | NA | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 0 | 100 | 44.31 ns | 0.919 ns | 1.878 ns | 43.40 ns | baseline | | - | - | NA | -| Linq | .NET 8 | .NET 8.0 | 0 | 100 | 248.49 ns | 4.890 ns | 6.185 ns | 246.22 ns | 5.61x slower | 0.29x | 0.0420 | 88 B | NA | -| LinqFaster | .NET 8 | .NET 8.0 | 0 | 100 | 199.90 ns | 1.372 ns | 1.071 ns | 199.81 ns | 4.41x slower | 0.23x | 0.4053 | 848 B | NA | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 131.39 ns | 2.575 ns | 2.529 ns | 130.68 ns | 2.94x slower | 0.15x | 0.4053 | 848 B | NA | -| LinqAF | .NET 8 | .NET 8.0 | 0 | 100 | 183.01 ns | 0.957 ns | 1.064 ns | 182.82 ns | 4.11x slower | 0.20x | - | - | NA | -| StructLinq | .NET 8 | .NET 8.0 | 0 | 100 | 157.60 ns | 0.533 ns | 0.445 ns | 157.53 ns | 3.49x slower | 0.19x | 0.0114 | 24 B | NA | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 0 | 100 | 137.80 ns | 1.703 ns | 1.593 ns | 137.39 ns | 3.07x slower | 0.16x | - | - | NA | -| Hyperlinq | .NET 8 | .NET 8.0 | 0 | 100 | 145.43 ns | 2.258 ns | 2.002 ns | 144.76 ns | 3.23x slower | 0.19x | - | - | NA | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 0 | 100 | 142.27 ns | 2.210 ns | 2.631 ns | 140.91 ns | 3.21x slower | 0.15x | - | - | NA | diff --git a/Results/Range.RangeSelectToArray.md b/Results/Range.RangeSelectToArray.md deleted file mode 100644 index 271150c7..00000000 --- a/Results/Range.RangeSelectToArray.md +++ /dev/null @@ -1,55 +0,0 @@ -## Range.RangeSelectToArray - -### Source -[RangeSelectToArray.cs](../LinqBenchmarks/Range/RangeSelectToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Start | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|----------------------------- |------- |--------- |------ |------ |----------:|----------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 0 | 100 | 84.84 ns | 1.329 ns | 1.110 ns | 84.74 ns | baseline | | 0.2027 | 424 B | | -| Linq | .NET 6 | .NET 6.0 | 0 | 100 | 238.92 ns | 1.852 ns | 1.642 ns | 238.28 ns | 2.82x slower | 0.04x | 0.2446 | 512 B | 1.21x more | -| LinqFaster | .NET 6 | .NET 6.0 | 0 | 100 | 254.45 ns | 2.515 ns | 2.352 ns | 254.31 ns | 3.00x slower | 0.05x | 0.4053 | 848 B | 2.00x more | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 100.53 ns | 2.031 ns | 3.558 ns | 100.59 ns | 1.18x slower | 0.03x | 0.4053 | 848 B | 2.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 0 | 100 | 590.21 ns | 24.654 ns | 69.939 ns | 557.49 ns | 6.86x slower | 0.92x | 0.7534 | 1576 B | 3.72x more | -| StructLinq | .NET 6 | .NET 6.0 | 0 | 100 | 230.91 ns | 4.583 ns | 6.273 ns | 228.05 ns | 2.75x slower | 0.07x | 0.2294 | 480 B | 1.13x more | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 0 | 100 | 92.47 ns | 1.922 ns | 5.228 ns | 90.09 ns | 1.10x slower | 0.08x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 0 | 100 | 237.62 ns | 3.093 ns | 2.893 ns | 237.08 ns | 2.80x slower | 0.05x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 0 | 100 | 118.69 ns | 1.073 ns | 0.951 ns | 118.54 ns | 1.40x slower | 0.02x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 80.05 ns | 0.906 ns | 0.707 ns | 79.83 ns | 1.06x faster | 0.02x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq_ValueDelegate_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 55.54 ns | 0.607 ns | 0.870 ns | 55.58 ns | 1.52x faster | 0.03x | 0.2027 | 424 B | 1.00x more | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 0 | 100 | 90.93 ns | 2.576 ns | 7.473 ns | 87.19 ns | baseline | | 0.2027 | 424 B | | -| Linq | .NET 8 | .NET 8.0 | 0 | 100 | 117.53 ns | 2.406 ns | 5.127 ns | 115.97 ns | 1.31x slower | 0.12x | 0.2449 | 512 B | 1.21x more | -| LinqFaster | .NET 8 | .NET 8.0 | 0 | 100 | 150.23 ns | 2.006 ns | 1.566 ns | 150.08 ns | 1.62x slower | 0.14x | 0.4053 | 848 B | 2.00x more | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 96.81 ns | 1.803 ns | 1.598 ns | 97.41 ns | 1.06x slower | 0.08x | 0.4053 | 848 B | 2.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 0 | 100 | 408.29 ns | 3.933 ns | 3.284 ns | 407.57 ns | 4.43x slower | 0.38x | 0.7534 | 1576 B | 3.72x more | -| StructLinq | .NET 8 | .NET 8.0 | 0 | 100 | 120.04 ns | 2.361 ns | 6.582 ns | 117.27 ns | 1.33x slower | 0.11x | 0.2294 | 480 B | 1.13x more | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 0 | 100 | 72.63 ns | 0.539 ns | 0.450 ns | 72.56 ns | 1.28x faster | 0.12x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 0 | 100 | 152.56 ns | 1.301 ns | 1.016 ns | 152.34 ns | 1.64x slower | 0.15x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 0 | 100 | 110.69 ns | 1.622 ns | 1.266 ns | 110.22 ns | 1.19x slower | 0.11x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 85.91 ns | 2.340 ns | 6.825 ns | 82.45 ns | 1.07x faster | 0.13x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq_ValueDelegate_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 58.90 ns | 1.244 ns | 1.222 ns | 58.78 ns | 1.56x faster | 0.15x | 0.2027 | 424 B | 1.00x more | diff --git a/Results/Range.RangeSelectToList.md b/Results/Range.RangeSelectToList.md deleted file mode 100644 index 1349dd0c..00000000 --- a/Results/Range.RangeSelectToList.md +++ /dev/null @@ -1,53 +0,0 @@ -## Range.RangeSelectToList - -### Source -[RangeSelectToList.cs](../LinqBenchmarks/Range/RangeSelectToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Start | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|----------------------------- |------- |--------- |------ |------ |----------:|---------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 0 | 100 | 294.79 ns | 3.552 ns | 2.966 ns | 293.70 ns | baseline | | 0.5660 | 1184 B | | -| Linq | .NET 6 | .NET 6.0 | 0 | 100 | 308.07 ns | 6.233 ns | 7.420 ns | 304.63 ns | 1.05x slower | 0.03x | 0.2599 | 544 B | 2.18x less | -| LinqFaster | .NET 6 | .NET 6.0 | 0 | 100 | 360.97 ns | 3.331 ns | 2.601 ns | 359.92 ns | 1.22x slower | 0.01x | 0.6232 | 1304 B | 1.10x more | -| LinqAF | .NET 6 | .NET 6.0 | 0 | 100 | 479.94 ns | 4.382 ns | 3.884 ns | 478.75 ns | 1.63x slower | 0.02x | 0.5655 | 1184 B | 1.00x more | -| StructLinq | .NET 6 | .NET 6.0 | 0 | 100 | 246.66 ns | 4.977 ns | 11.925 ns | 242.50 ns | 1.18x faster | 0.05x | 0.2446 | 512 B | 2.31x less | -| StructLinq_ValueDelegate | .NET 6 | .NET 6.0 | 0 | 100 | 107.43 ns | 2.219 ns | 4.057 ns | 106.06 ns | 2.75x faster | 0.11x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 0 | 100 | 275.64 ns | 5.542 ns | 14.504 ns | 268.93 ns | 1.08x faster | 0.03x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate | .NET 6 | .NET 6.0 | 0 | 100 | 135.78 ns | 2.424 ns | 1.892 ns | 135.17 ns | 2.17x faster | 0.03x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 88.93 ns | 1.527 ns | 1.931 ns | 88.30 ns | 3.30x faster | 0.09x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 63.59 ns | 0.619 ns | 0.517 ns | 63.47 ns | 4.64x faster | 0.07x | 0.2180 | 456 B | 2.60x less | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 0 | 100 | 308.59 ns | 6.695 ns | 18.775 ns | 301.52 ns | baseline | | 0.5660 | 1184 B | | -| Linq | .NET 8 | .NET 8.0 | 0 | 100 | 121.76 ns | 2.464 ns | 2.933 ns | 121.35 ns | 2.53x faster | 0.17x | 0.2601 | 544 B | 2.18x less | -| LinqFaster | .NET 8 | .NET 8.0 | 0 | 100 | 199.23 ns | 3.165 ns | 3.109 ns | 199.16 ns | 1.56x faster | 0.12x | 0.6235 | 1304 B | 1.10x more | -| LinqAF | .NET 8 | .NET 8.0 | 0 | 100 | 400.43 ns | 8.088 ns | 22.943 ns | 388.06 ns | 1.30x slower | 0.11x | 0.5660 | 1184 B | 1.00x more | -| StructLinq | .NET 8 | .NET 8.0 | 0 | 100 | 125.70 ns | 0.880 ns | 0.735 ns | 125.69 ns | 2.49x faster | 0.21x | 0.2449 | 512 B | 2.31x less | -| StructLinq_ValueDelegate | .NET 8 | .NET 8.0 | 0 | 100 | 79.10 ns | 1.545 ns | 2.623 ns | 78.10 ns | 3.92x faster | 0.27x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 0 | 100 | 158.36 ns | 1.890 ns | 1.578 ns | 157.97 ns | 1.98x faster | 0.17x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate | .NET 8 | .NET 8.0 | 0 | 100 | 119.50 ns | 0.645 ns | 0.572 ns | 119.43 ns | 2.61x faster | 0.21x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 87.17 ns | 0.729 ns | 0.646 ns | 87.01 ns | 3.58x faster | 0.30x | 0.2179 | 456 B | 2.60x less | -| Hyperlinq_ValueDelegate_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 63.31 ns | 0.678 ns | 0.566 ns | 63.11 ns | 4.94x faster | 0.43x | 0.2180 | 456 B | 2.60x less | diff --git a/Results/Range.RangeToArray.md b/Results/Range.RangeToArray.md deleted file mode 100644 index e91bdd2a..00000000 --- a/Results/Range.RangeToArray.md +++ /dev/null @@ -1,47 +0,0 @@ -## Range.RangeToArray - -### Source -[RangeToArray.cs](../LinqBenchmarks/Range/RangeToArray.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Start | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|---------------- |------- |--------- |------ |------ |----------:|---------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 0 | 100 | 78.17 ns | 1.628 ns | 1.360 ns | 78.46 ns | baseline | | 0.2027 | 424 B | | -| Linq | .NET 6 | .NET 6.0 | 0 | 100 | 81.33 ns | 1.744 ns | 4.890 ns | 79.34 ns | 1.06x slower | 0.05x | 0.2218 | 464 B | 1.09x more | -| LinqFaster | .NET 6 | .NET 6.0 | 0 | 100 | 66.29 ns | 1.229 ns | 0.960 ns | 66.22 ns | 1.18x faster | 0.03x | 0.2027 | 424 B | 1.00x more | -| LinqFaster_SIMD | .NET 6 | .NET 6.0 | 0 | 100 | 34.86 ns | 0.260 ns | 0.203 ns | 34.78 ns | 2.24x faster | 0.04x | 0.2027 | 424 B | 1.00x more | -| LinqAF | .NET 6 | .NET 6.0 | 0 | 100 | 207.03 ns | 4.001 ns | 8.352 ns | 202.44 ns | 2.67x slower | 0.12x | 0.2027 | 424 B | 1.00x more | -| StructLinq | .NET 6 | .NET 6.0 | 0 | 100 | 78.22 ns | 0.932 ns | 1.036 ns | 78.10 ns | 1.00x slower | 0.03x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq | .NET 6 | .NET 6.0 | 0 | 100 | 40.93 ns | 0.871 ns | 2.170 ns | 39.77 ns | 1.91x faster | 0.11x | 0.2027 | 424 B | 1.00x more | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 0 | 100 | 86.97 ns | 1.806 ns | 3.017 ns | 85.72 ns | baseline | | 0.2027 | 424 B | | -| Linq | .NET 8 | .NET 8.0 | 0 | 100 | 75.94 ns | 0.589 ns | 0.723 ns | 75.79 ns | 1.15x faster | 0.04x | 0.2218 | 464 B | 1.09x more | -| LinqFaster | .NET 8 | .NET 8.0 | 0 | 100 | 63.01 ns | 0.809 ns | 0.675 ns | 62.76 ns | 1.38x faster | 0.05x | 0.2027 | 424 B | 1.00x more | -| LinqFaster_SIMD | .NET 8 | .NET 8.0 | 0 | 100 | 39.93 ns | 0.493 ns | 0.484 ns | 39.66 ns | 2.17x faster | 0.08x | 0.2027 | 424 B | 1.00x more | -| LinqAF | .NET 8 | .NET 8.0 | 0 | 100 | 210.84 ns | 4.197 ns | 11.560 ns | 204.32 ns | 2.44x slower | 0.17x | 0.2027 | 424 B | 1.00x more | -| StructLinq | .NET 8 | .NET 8.0 | 0 | 100 | 67.11 ns | 1.314 ns | 2.160 ns | 66.30 ns | 1.30x faster | 0.06x | 0.2027 | 424 B | 1.00x more | -| Hyperlinq | .NET 8 | .NET 8.0 | 0 | 100 | 46.48 ns | 1.205 ns | 3.458 ns | 44.70 ns | 1.88x faster | 0.13x | 0.2027 | 424 B | 1.00x more | diff --git a/Results/Range.RangeToList.md b/Results/Range.RangeToList.md deleted file mode 100644 index 28407064..00000000 --- a/Results/Range.RangeToList.md +++ /dev/null @@ -1,45 +0,0 @@ -## Range.RangeToList - -### Source -[RangeToList.cs](../LinqBenchmarks/Range/RangeToList.cs) - -### References: -- JM.LinqFaster: [1.1.2](https://www.nuget.org/packages/JM.LinqFaster/1.1.2) -- LinqFaster.SIMD: [1.1.2](https://www.nuget.org/packages/LinqFaster.SIMD/1.0.3) -- LinqFasterer: [2.1.0](https://www.nuget.org/packages/LinqFasterer/2.1.0) -- LinqAF: [3.0.0.0](https://www.nuget.org/packages/LinqAF/3.0.0.0) -- LinqOptimizer.CSharp: [0.7.0](https://www.nuget.org/packages/LinqOptimizer.CSharp/0.7.0) -- SpanLinq: [0.0.1](https://www.nuget.org/packages/SpanLinq/0.0.1) -- Streams.CSharp: [0.6.0](https://www.nuget.org/packages/Streams.CSharp/0.6.0) -- StructLinq.BCL: [0.28.1](https://www.nuget.org/packages/StructLinq/0.28.1) -- NetFabric.Hyperlinq: [3.0.0-beta48](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta48) -- System.Linq.Async: [6.0.1](https://www.nuget.org/packages/System.Linq.Async/6.0.1) -- Faslinq: [1.0.5](https://www.nuget.org/packages/Faslinq/1.0.5) - -### Results: -``` ini - -BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update) -Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores -.NET SDK=8.0.100-preview.5.23303.2 - [Host] : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 6 : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2 - .NET 8 : .NET 8.0.0 (8.0.23.28008), X64 RyuJIT AVX2 - - -``` -| Method | Job | Runtime | Start | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | -|----------- |------- |--------- |------ |------ |----------:|---------:|----------:|----------:|-------------:|--------:|-------:|----------:|------------:| -| ForLoop | .NET 6 | .NET 6.0 | 0 | 100 | 291.26 ns | 5.846 ns | 13.550 ns | 284.28 ns | baseline | | 0.5660 | 1184 B | | -| Linq | .NET 6 | .NET 6.0 | 0 | 100 | 207.25 ns | 1.896 ns | 1.774 ns | 206.82 ns | 1.43x faster | 0.08x | 0.2370 | 496 B | 2.39x less | -| LinqFaster | .NET 6 | .NET 6.0 | 0 | 100 | 120.91 ns | 2.440 ns | 2.163 ns | 120.07 ns | 2.46x faster | 0.14x | 0.4206 | 880 B | 1.35x less | -| LinqAF | .NET 6 | .NET 6.0 | 0 | 100 | 262.33 ns | 4.731 ns | 4.194 ns | 260.72 ns | 1.13x faster | 0.07x | 0.2179 | 456 B | 2.60x less | -| StructLinq | .NET 6 | .NET 6.0 | 0 | 100 | 84.80 ns | 1.322 ns | 1.358 ns | 84.63 ns | 3.48x faster | 0.22x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq | .NET 6 | .NET 6.0 | 0 | 100 | 49.27 ns | 1.002 ns | 1.154 ns | 48.97 ns | 5.97x faster | 0.38x | 0.2180 | 456 B | 2.60x less | -| | | | | | | | | | | | | | | -| ForLoop | .NET 8 | .NET 8.0 | 0 | 100 | 266.61 ns | 4.659 ns | 3.890 ns | 265.66 ns | baseline | | 0.5660 | 1184 B | | -| Linq | .NET 8 | .NET 8.0 | 0 | 100 | 81.59 ns | 1.452 ns | 1.287 ns | 81.29 ns | 3.27x faster | 0.07x | 0.2370 | 496 B | 2.39x less | -| LinqFaster | .NET 8 | .NET 8.0 | 0 | 100 | 114.05 ns | 1.608 ns | 1.579 ns | 113.93 ns | 2.35x faster | 0.06x | 0.4207 | 880 B | 1.35x less | -| LinqAF | .NET 8 | .NET 8.0 | 0 | 100 | 258.66 ns | 2.840 ns | 2.517 ns | 258.30 ns | 1.03x faster | 0.01x | 0.2179 | 456 B | 2.60x less | -| StructLinq | .NET 8 | .NET 8.0 | 0 | 100 | 71.06 ns | 0.706 ns | 0.551 ns | 70.91 ns | 3.76x faster | 0.07x | 0.2180 | 456 B | 2.60x less | -| Hyperlinq | .NET 8 | .NET 8.0 | 0 | 100 | 53.49 ns | 0.860 ns | 1.364 ns | 53.10 ns | 4.95x faster | 0.21x | 0.2180 | 456 B | 2.60x less |