Skip to content

Commit 647af4c

Browse files
authored
Review ToArray() (#378)
* Review ToArray() * Review ArrayBuilder and LargeArrayBuilder
1 parent 59d8d40 commit 647af4c

File tree

98 files changed

+1281
-1306
lines changed

Some content is hidden

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

98 files changed

+1281
-1306
lines changed

Benchmarks/ArrayIterationBenchmarks.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,35 @@
44
[ArrayIterationBenchmarks.cs](../NetFabric.Hyperlinq.Benchmarks/Benchmarks/ArrayIterationBenchmarks.cs)
55

66
### References:
7-
- Linq: 6.0.0-preview.5.21301.5
7+
- Linq: 6.0.0-preview.7.21377.19
88
- System.Linq.Async: [5.0.0](https://www.nuget.org/packages/System.Linq.Async/5.0.0)
99
- System.Interactive: [5.0.0](https://www.nuget.org/packages/System.Interactive/5.0.0)
1010
- System.Interactive.Async: [5.0.0](https://www.nuget.org/packages/System.Interactive.Async/5.0.0)
11-
- StructLinq: [0.26.0](https://www.nuget.org/packages/StructLinq/0.26.0)
12-
- NetFabric.Hyperlinq: [3.0.0-beta44](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta44)
11+
- StructLinq: [0.27.0](https://www.nuget.org/packages/StructLinq/0.27.0)
12+
- NetFabric.Hyperlinq: [3.0.0-beta45](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta45)
1313

1414
### Results:
1515
``` ini
1616

17-
BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1081 (21H1/May2021Update)
18-
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19-
.NET SDK=6.0.100-preview.5.21302.13
20-
[Host] : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
21-
Job-SLIMHF : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
17+
BenchmarkDotNet=v0.13.1.1606-nightly, OS=macOS Catalina 10.15.7 (19H1323) [Darwin 19.6.0]
18+
Intel Core i5-7360U CPU 2.30GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19+
.NET SDK=6.0.100-preview.7.21379.14
20+
[Host] : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
21+
.NET 6 PGO : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
2222

23-
Runtime=.NET 6.0
23+
Job=.NET 6 PGO EnvironmentVariables=COMPlus_ReadyToRun=0,COMPlus_TC_QuickJitForLoops=1,COMPlus_TieredPGO=1 Runtime=.NET 6.0
2424

2525
```
26-
| Method | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
27-
|--------------------- |-------- |-----------:|---------:|---------:|-------------:|--------:|------:|------:|------:|----------:|
28-
| Foreach | 1000000 | 432.4 μs | 3.92 μs | 3.06 μs | baseline | | - | - | - | - |
29-
| For | 1000000 | 435.1 μs | 8.19 μs | 7.26 μs | 1.01x slower | 0.02x | - | - | - | - |
30-
| For_Unsafe | 1000000 | 434.8 μs | 8.67 μs | 8.11 μs | 1.00x slower | 0.02x | - | - | - | - |
31-
| ForAdamczewski | 1000000 | 369.4 μs | 6.03 μs | 5.03 μs | 1.17x faster | 0.02x | - | - | - | - |
32-
| ForAdamczewskiUnsafe | 1000000 | 436.1 μs | 4.05 μs | 3.38 μs | 1.01x slower | 0.01x | - | - | - | - |
33-
| Span | 1000000 | 431.5 μs | 2.91 μs | 2.43 μs | 1.00x faster | 0.01x | - | - | - | - |
34-
| ArraySegment_Foreach | 1000000 | 2,890.1 μs | 34.93 μs | 30.97 μs | 6.69x slower | 0.07x | - | - | - | 1 B |
35-
| ArraySegment_For | 1000000 | 836.4 μs | 9.11 μs | 7.60 μs | 1.94x slower | 0.02x | - | - | - | - |
36-
| ArraySegment_AsSpan | 1000000 | 430.0 μs | 4.37 μs | 3.65 μs | 1.01x faster | 0.01x | - | - | - | - |
37-
| ArraySegment_AsArray | 1000000 | 575.1 μs | 3.28 μs | 2.91 μs | 1.33x slower | 0.01x | - | - | - | - |
38-
| Vector | 1000000 | 118.6 μs | 1.91 μs | 2.12 μs | 3.63x faster | 0.08x | - | - | - | - |
26+
| Method | Count | Mean | Error | StdDev | Ratio | RatioSD | Allocated |
27+
|--------------------- |-------- |-----------:|---------:|---------:|-------------:|--------:|----------:|
28+
| Foreach | 1000000 | 459.6 μs | 2.49 μs | 1.95 μs | baseline | | 13 B |
29+
| For | 1000000 | 460.4 μs | 2.37 μs | 2.21 μs | 1.00x slower | 0.01x | - |
30+
| For_Unsafe | 1000000 | 460.7 μs | 2.86 μs | 2.54 μs | 1.00x slower | 0.00x | - |
31+
| ForAdamczewski | 1000000 | 386.4 μs | 2.78 μs | 2.60 μs | 1.19x faster | 0.01x | - |
32+
| ForAdamczewskiUnsafe | 1000000 | 387.7 μs | 4.10 μs | 3.84 μs | 1.18x faster | 0.01x | - |
33+
| Span | 1000000 | 460.5 μs | 2.08 μs | 1.85 μs | 1.00x slower | 0.01x | - |
34+
| ArraySegment_Foreach | 1000000 | 1,746.3 μs | 12.53 μs | 11.72 μs | 3.80x slower | 0.02x | 1 B |
35+
| ArraySegment_For | 1000000 | 646.1 μs | 7.65 μs | 6.39 μs | 1.41x slower | 0.01x | - |
36+
| ArraySegment_AsSpan | 1000000 | 461.5 μs | 3.82 μs | 3.19 μs | 1.00x slower | 0.01x | 1 B |
37+
| ArraySegment_AsArray | 1000000 | 626.8 μs | 3.41 μs | 3.03 μs | 1.36x slower | 0.01x | 1 B |
38+
| Vector | 1000000 | 119.9 μs | 1.72 μs | 1.61 μs | 3.83x faster | 0.06x | - |

Benchmarks/ArrayToArrayBenchmarks.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,38 @@
44
[ArrayToArrayBenchmarks.cs](../NetFabric.Hyperlinq.Benchmarks/Benchmarks/ArrayToArrayBenchmarks.cs)
55

66
### References:
7-
- Linq: 6.0.0-preview.5.21301.5
7+
- Linq: 6.0.0-preview.7.21377.19
88
- System.Linq.Async: [5.0.0](https://www.nuget.org/packages/System.Linq.Async/5.0.0)
99
- System.Interactive: [5.0.0](https://www.nuget.org/packages/System.Interactive/5.0.0)
1010
- System.Interactive.Async: [5.0.0](https://www.nuget.org/packages/System.Interactive.Async/5.0.0)
11-
- StructLinq: [0.26.0](https://www.nuget.org/packages/StructLinq/0.26.0)
12-
- NetFabric.Hyperlinq: [3.0.0-beta44](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta44)
11+
- StructLinq: [0.27.0](https://www.nuget.org/packages/StructLinq/0.27.0)
12+
- NetFabric.Hyperlinq: [3.0.0-beta45](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta45)
1313

1414
### Results:
1515
``` ini
1616

17-
BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1055 (21H1/May2021Update)
18-
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19-
.NET SDK=6.0.100-preview.5.21302.13
20-
[Host] : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
21-
Job-UNTOJZ : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
17+
BenchmarkDotNet=v0.13.0.1561-nightly, OS=macOS Catalina 10.15.7 (19H1323) [Darwin 19.6.0]
18+
Intel Core i5-7360U CPU 2.30GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19+
.NET SDK=6.0.100-preview.7.21379.14
20+
[Host] : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
21+
.NET 6 PGO : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
2222

23-
Runtime=.NET 6.0
23+
Job=.NET 6 PGO EnvironmentVariables=COMPlus_ReadyToRun=0,COMPlus_TC_QuickJitForLoops=1,COMPlus_TieredPGO=1 Runtime=.NET 6.0
2424

2525
```
26-
| Method | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
27-
|----------------- |------ |-----------:|----------:|----------:|------:|--------:|-------:|------:|------:|----------:|
28-
| **ArrayClone** | **10** | **92.985 ns** | **1.9170 ns** | **2.4926 ns** | **1.00** | **0.00** | **0.0303** | **-** | **-** | **64 B** |
29-
| SpanToArray | 10 | 7.493 ns | 0.1325 ns | 0.1175 ns | 0.08 | 0.00 | 0.0306 | - | - | 64 B |
30-
| SpanCopyTo | 10 | 8.646 ns | 0.1475 ns | 0.1307 ns | 0.09 | 0.00 | 0.0306 | - | - | 64 B |
31-
| CollectionCopyTo | 10 | 14.323 ns | 0.1582 ns | 0.1403 ns | 0.16 | 0.01 | 0.0305 | - | - | 64 B |
32-
| | | | | | | | | | | |
33-
| **ArrayClone** | **100** | **92.451 ns** | **1.1867 ns** | **1.1101 ns** | **1.00** | **0.00** | **0.2021** | **-** | **-** | **424 B** |
34-
| SpanToArray | 100 | 31.352 ns | 0.6448 ns | 0.6031 ns | 0.34 | 0.01 | 0.2027 | - | - | 424 B |
35-
| SpanCopyTo | 100 | 33.141 ns | 0.8588 ns | 2.4914 ns | 0.36 | 0.02 | 0.2027 | - | - | 424 B |
36-
| CollectionCopyTo | 100 | 34.238 ns | 0.5767 ns | 0.5394 ns | 0.37 | 0.01 | 0.2027 | - | - | 424 B |
37-
| | | | | | | | | | | |
38-
| **ArrayClone** | **1000** | **286.609 ns** | **2.1636 ns** | **1.8067 ns** | **1.00** | **0.00** | **1.9155** | **-** | **-** | **4,024 B** |
39-
| SpanToArray | 1000 | 269.321 ns | 4.8332 ns | 4.5210 ns | 0.94 | 0.01 | 1.9226 | - | - | 4,024 B |
40-
| SpanCopyTo | 1000 | 242.775 ns | 3.5268 ns | 3.2990 ns | 0.85 | 0.01 | 1.9155 | - | - | 4,024 B |
41-
| CollectionCopyTo | 1000 | 243.677 ns | 4.2879 ns | 4.0109 ns | 0.85 | 0.02 | 1.9155 | - | - | 4,024 B |
26+
| Method | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
27+
|----------------- |------ |----------:|---------:|---------:|-------------:|--------:|-------:|------:|------:|----------:|
28+
| **ArrayClone** | **10** | **106.79 ns** | **0.520 ns** | **0.486 ns** | **baseline** | **** | **0.0305** | **-** | **-** | **64 B** |
29+
| SpanToArray | 10 | 11.76 ns | 0.116 ns | 0.097 ns | 9.08x faster | 0.09x | 0.0306 | - | - | 64 B |
30+
| SpanCopyTo | 10 | 12.71 ns | 0.228 ns | 0.213 ns | 8.41x faster | 0.15x | 0.0306 | - | - | 64 B |
31+
| CollectionCopyTo | 10 | 16.74 ns | 0.099 ns | 0.093 ns | 6.38x faster | 0.04x | 0.0306 | - | - | 64 B |
32+
| | | | | | | | | | | |
33+
| **ArrayClone** | **100** | **115.18 ns** | **0.865 ns** | **0.810 ns** | **baseline** | **** | **0.2019** | **-** | **-** | **424 B** |
34+
| SpanToArray | 100 | 38.58 ns | 0.355 ns | 0.297 ns | 2.98x faster | 0.03x | 0.2027 | - | - | 424 B |
35+
| SpanCopyTo | 100 | 40.01 ns | 0.462 ns | 0.432 ns | 2.88x faster | 0.03x | 0.2027 | - | - | 424 B |
36+
| CollectionCopyTo | 100 | 43.68 ns | 0.381 ns | 0.356 ns | 2.64x faster | 0.03x | 0.2027 | - | - | 424 B |
37+
| | | | | | | | | | | |
38+
| **ArrayClone** | **1000** | **310.98 ns** | **3.725 ns** | **3.302 ns** | **baseline** | **** | **1.9155** | **-** | **-** | **4,024 B** |
39+
| SpanToArray | 1000 | 308.84 ns | 1.502 ns | 1.254 ns | 1.01x faster | 0.01x | 1.9226 | - | - | 4,024 B |
40+
| SpanCopyTo | 1000 | 295.58 ns | 5.032 ns | 4.707 ns | 1.05x faster | 0.01x | 1.9155 | - | - | 4,024 B |
41+
| CollectionCopyTo | 1000 | 299.15 ns | 3.317 ns | 3.102 ns | 1.04x faster | 0.01x | 1.9155 | - | - | 4,024 B |

Benchmarks/RangeToArrayBenchmarks.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,31 @@
44
[RangeToArrayBenchmarks.cs](../NetFabric.Hyperlinq.Benchmarks/Benchmarks/RangeToArrayBenchmarks.cs)
55

66
### References:
7-
- Linq: 6.0.0-preview.5.21301.5
7+
- Linq: 6.0.0-preview.7.21377.19
88
- System.Linq.Async: [5.0.0](https://www.nuget.org/packages/System.Linq.Async/5.0.0)
99
- System.Interactive: [5.0.0](https://www.nuget.org/packages/System.Interactive/5.0.0)
1010
- System.Interactive.Async: [5.0.0](https://www.nuget.org/packages/System.Interactive.Async/5.0.0)
11-
- StructLinq: [0.26.0](https://www.nuget.org/packages/StructLinq/0.26.0)
12-
- NetFabric.Hyperlinq: [3.0.0-beta44](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta44)
11+
- StructLinq: [0.27.0](https://www.nuget.org/packages/StructLinq/0.27.0)
12+
- NetFabric.Hyperlinq: [3.0.0-beta45](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta45)
1313

1414
### Results:
1515
``` ini
1616

17-
BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1055 (21H1/May2021Update)
18-
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19-
.NET SDK=6.0.100-preview.5.21302.13
20-
[Host] : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
21-
Job-UNTOJZ : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
17+
BenchmarkDotNet=v0.13.1.1606-nightly, OS=macOS Catalina 10.15.7 (19H1323) [Darwin 19.6.0]
18+
Intel Core i5-7360U CPU 2.30GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19+
.NET SDK=6.0.100-preview.7.21379.14
20+
[Host] : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
21+
.NET 6 PGO : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
2222

23-
Runtime=.NET 6.0
23+
Job=.NET 6 PGO EnvironmentVariables=COMPlus_ReadyToRun=0,COMPlus_TC_QuickJitForLoops=1,COMPlus_TieredPGO=1 Runtime=.NET 6.0
2424

2525
```
26-
| Method | Categories | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
27-
|---------------- |------------ |------ |----------:|---------:|---------:|----------:|------:|--------:|-------:|------:|------:|----------:|
28-
| Linq | Range | 100 | 91.33 ns | 0.704 ns | 0.588 ns | 91.48 ns | 1.00 | 0.00 | 0.2218 | - | - | 464 B |
29-
| StructLinq | Range | 100 | 86.82 ns | 1.396 ns | 1.305 ns | 86.72 ns | 0.95 | 0.01 | 0.2142 | - | - | 448 B |
30-
| LinqFaster_SIMD | Range | 100 | 40.31 ns | 0.879 ns | 2.452 ns | 39.02 ns | 0.44 | 0.02 | 0.2027 | - | - | 424 B |
31-
| Hyperlinq | Range | 100 | 45.34 ns | 0.366 ns | 0.342 ns | 45.35 ns | 0.50 | 0.01 | 0.2027 | - | - | 424 B |
32-
| | | | | | | | | | | | | |
33-
| Linq_Async | Range_Async | 100 | 105.08 ns | 1.318 ns | 1.232 ns | 105.44 ns | 1.00 | 0.00 | 0.2257 | - | - | 472 B |
34-
| Hyperlinq_Async | Range_Async | 100 | 145.72 ns | 0.949 ns | 0.793 ns | 145.54 ns | 1.39 | 0.02 | 0.2027 | - | - | 424 B |
26+
| Method | Categories | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Allocated |
27+
|---------------- |------------ |------ |----------:|---------:|---------:|-------------:|--------:|-------:|----------:|
28+
| Linq | Range | 100 | 98.10 ns | 0.503 ns | 0.393 ns | baseline | | 0.2217 | 464 B |
29+
| StructLinq | Range | 100 | 106.79 ns | 2.013 ns | 1.785 ns | 1.09x slower | 0.02x | 0.2142 | 448 B |
30+
| LinqFaster_SIMD | Range | 100 | 46.08 ns | 0.330 ns | 0.292 ns | 2.13x faster | 0.02x | 0.2027 | 424 B |
31+
| Hyperlinq | Range | 100 | 52.06 ns | 0.499 ns | 0.417 ns | 1.88x faster | 0.02x | 0.2027 | 424 B |
32+
| | | | | | | | | | |
33+
| Linq_Async | Range_Async | 100 | 129.59 ns | 1.059 ns | 0.884 ns | baseline | | 0.2255 | 472 B |
34+
| Hyperlinq_Async | Range_Async | 100 | 166.08 ns | 1.368 ns | 1.213 ns | 1.28x slower | 0.01x | 0.2027 | 424 B |

Benchmarks/RepeatToArrayBenchmarks.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,32 @@
44
[RepeatToArrayBenchmarks.cs](../NetFabric.Hyperlinq.Benchmarks/Benchmarks/RepeatToArrayBenchmarks.cs)
55

66
### References:
7-
- Linq: 6.0.0-preview.5.21301.5
7+
- Linq: 6.0.0-preview.7.21377.19
88
- System.Linq.Async: [5.0.0](https://www.nuget.org/packages/System.Linq.Async/5.0.0)
99
- System.Interactive: [5.0.0](https://www.nuget.org/packages/System.Interactive/5.0.0)
1010
- System.Interactive.Async: [5.0.0](https://www.nuget.org/packages/System.Interactive.Async/5.0.0)
11-
- StructLinq: [0.26.0](https://www.nuget.org/packages/StructLinq/0.26.0)
12-
- NetFabric.Hyperlinq: [3.0.0-beta44](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta44)
11+
- StructLinq: [0.27.0](https://www.nuget.org/packages/StructLinq/0.27.0)
12+
- NetFabric.Hyperlinq: [3.0.0-beta45](https://www.nuget.org/packages/NetFabric.Hyperlinq/3.0.0-beta45)
1313

1414
### Results:
1515
``` ini
1616

17-
BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1055 (21H1/May2021Update)
18-
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19-
.NET SDK=6.0.100-preview.5.21302.13
20-
[Host] : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
21-
Job-UNTOJZ : .NET 6.0.0 (6.0.21.30105), X64 RyuJIT
17+
BenchmarkDotNet=v0.13.1.1606-nightly, OS=macOS Catalina 10.15.7 (19H1323) [Darwin 19.6.0]
18+
Intel Core i5-7360U CPU 2.30GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
19+
.NET SDK=6.0.100-preview.7.21379.14
20+
[Host] : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
21+
.NET 6 PGO : .NET 6.0.0 (6.0.21.37719), X64 RyuJIT
2222

23-
Runtime=.NET 6.0
23+
Job=.NET 6 PGO EnvironmentVariables=COMPlus_ReadyToRun=0,COMPlus_TC_QuickJitForLoops=1,COMPlus_TieredPGO=1 Runtime=.NET 6.0
2424

2525
```
26-
| Method | Categories | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
27-
|---------------- |------------- |------ |----------:|---------:|---------:|----------:|------:|--------:|-------:|------:|------:|----------:|
28-
| Linq | Repeat | 100 | 90.72 ns | 1.491 ns | 2.450 ns | 90.20 ns | 1.00 | 0.00 | 0.2180 | - | - | 456 B |
29-
| StructLinq | Repeat | 100 | 77.89 ns | 1.265 ns | 1.183 ns | 77.83 ns | 0.86 | 0.03 | 0.2142 | - | - | 448 B |
30-
| LinqFaster_SIMD | Repeat | 100 | 29.47 ns | 0.658 ns | 0.808 ns | 29.45 ns | 0.32 | 0.01 | 0.2027 | - | - | 424 B |
31-
| Hyperlinq | Repeat | 100 | 34.85 ns | 0.589 ns | 0.522 ns | 34.97 ns | 0.38 | 0.01 | 0.2027 | - | - | 424 B |
32-
| Hyperlinq_SIMD | Repeat | 100 | 42.00 ns | 0.914 ns | 2.593 ns | 40.72 ns | 0.46 | 0.03 | 0.2027 | - | - | 424 B |
33-
| | | | | | | | | | | | | |
34-
| Linq_Async | Repeat_Async | 100 | 101.03 ns | 1.027 ns | 0.961 ns | 101.12 ns | 1.00 | 0.00 | 0.2257 | - | - | 472 B |
35-
| Hyperlinq_Async | Repeat_Async | 100 | 166.58 ns | 1.317 ns | 1.100 ns | 166.15 ns | 1.65 | 0.01 | 0.2027 | - | - | 424 B |
26+
| Method | Categories | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Allocated |
27+
|---------------- |------------- |------ |----------:|---------:|---------:|-------------:|--------:|-------:|----------:|
28+
| Linq | Repeat | 100 | 48.20 ns | 0.986 ns | 1.923 ns | baseline | | 0.2180 | 456 B |
29+
| StructLinq | Repeat | 100 | 87.02 ns | 0.783 ns | 0.694 ns | 1.72x slower | 0.06x | 0.2142 | 448 B |
30+
| LinqFaster_SIMD | Repeat | 100 | 40.09 ns | 0.580 ns | 0.542 ns | 1.25x faster | 0.05x | 0.2027 | 424 B |
31+
| Hyperlinq | Repeat | 100 | 42.98 ns | 0.979 ns | 1.690 ns | 1.12x faster | 0.05x | 0.2027 | 424 B |
32+
| Hyperlinq_SIMD | Repeat | 100 | 51.60 ns | 1.154 ns | 1.830 ns | 1.07x slower | 0.03x | 0.2027 | 424 B |
33+
| | | | | | | | | | |
34+
| Linq_Async | Repeat_Async | 100 | 120.20 ns | 1.425 ns | 1.333 ns | baseline | | 0.2255 | 472 B |
35+
| Hyperlinq_Async | Repeat_Async | 100 | 146.16 ns | 2.165 ns | 2.025 ns | 1.22x slower | 0.03x | 0.2027 | 424 B |

0 commit comments

Comments
 (0)