Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ee95032
[Visitor] Create interface and naive implementation.
reegeek Nov 3, 2020
f2a391f
Pass Visitor by ref
reegeek Nov 3, 2020
b921eb4
Improve some Visit methods
reegeek Nov 3, 2020
c197068
Add PooledListVisitor
reegeek Nov 3, 2020
5a33280
Add Visitor in ToListComparison.
reegeek Nov 3, 2020
6fca7f4
Change Visit interface and expose exit status.
reegeek Nov 3, 2020
20af760
implement visit on some enumerable.
reegeek Nov 4, 2020
13de6f5
WIP Benchmark
reegeek Nov 4, 2020
37a4639
Add some benchmark
reegeek Nov 5, 2020
440d36f
[Sum] use visitor for sum.
reegeek Nov 8, 2020
e584841
Merge branch 'master' into Visitor
reegeek Dec 10, 2020
d138cc0
Fix compilation
reegeek Dec 10, 2020
bcc119b
Use ref for Dictionary in Visit
reegeek Dec 10, 2020
c59d567
Merge branch 'master' into Visitor
reegeek Dec 18, 2020
91889aa
ficx compilation.
reegeek Dec 18, 2020
03577df
Merge branch 'master' into Visitor
reegeek Dec 18, 2020
de443e7
WIP Add bench on ToArrayOnArraySelect with visitor.
reegeek Dec 18, 2020
5319d44
Merge branch 'master' into Visitor
reegeek Dec 21, 2020
d4d0456
Fix compilation.
reegeek Dec 22, 2020
c459f20
Update benchmark
reegeek Dec 22, 2020
69ea2d0
fix tests.
reegeek Dec 22, 2020
0a5c6ef
remove IDirectStructCollection
reegeek Dec 22, 2020
4440fc4
Update benchmark
reegeek Dec 22, 2020
c3d1825
[ToArray] use visitor.
reegeek Dec 22, 2020
80cd5ac
[ToList] use ToArray for ToList
reegeek Dec 22, 2020
938ed97
housekepping
reegeek Dec 23, 2020
bc9910f
Update benchmark
reegeek Dec 23, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions Documents/BenchmarksResults/ArrayOfBigStructSum.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@
### Results:
``` ini

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19042
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-preview.7.20366.6
[Host] : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
DefaultJob : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------------- |-----------:|---------:|---------:|------:|-------:|------:|------:|----------:|
| ForSum | 613.3 ns | 1.19 ns | 1.06 ns | 0.10 | - | - | - | - |
| SysEnumerableSum | 5,982.1 ns | 10.64 ns | 8.89 ns | 1.00 | 0.0076 | - | - | 32 B |
| StructSum | 3,675.6 ns | 56.62 ns | 52.96 ns | 0.61 | 0.0076 | - | - | 32 B |
| RefStructSum | 2,003.0 ns | 4.87 ns | 4.56 ns | 0.33 | 0.0076 | - | - | 32 B |
| ZeroAllocStructSum | 2,275.9 ns | 42.85 ns | 35.79 ns | 0.38 | - | - | - | - |
| ZeroAllocRefStructSum | 766.0 ns | 1.32 ns | 1.24 ns | 0.13 | - | - | - | - |
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------------- |-----------:|---------:|----------:|------:|--------:|-------:|------:|------:|----------:|
| Handmaded | 799.6 ns | 4.87 ns | 4.55 ns | 0.14 | 0.00 | - | - | - | - |
| SysEnumerableSum | 5,861.1 ns | 34.26 ns | 28.61 ns | 1.00 | 0.00 | - | - | - | 32 B |
| StructSum | 3,253.7 ns | 30.06 ns | 28.12 ns | 0.55 | 0.01 | 0.0038 | - | - | 32 B |
| RefStructSum | 1,886.6 ns | 22.74 ns | 18.99 ns | 0.32 | 0.00 | 0.0057 | - | - | 32 B |
| ZeroAllocStructSum | 2,337.6 ns | 46.23 ns | 110.75 ns | 0.38 | 0.02 | - | - | - | - |
| ZeroAllocRefStructSum | 716.5 ns | 6.18 ns | 5.78 ns | 0.12 | 0.00 | - | - | - | - |
19 changes: 10 additions & 9 deletions Documents/BenchmarksResults/ArrayOfClassSum.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,17 @@
### Results:
``` ini

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------- |-----------:|---------:|---------:|------:|-------:|------:|------:|----------:|
| SysSum | 515.2 ns | 1.41 ns | 1.32 ns | 0.09 | - | - | - | - |
| SysEnumerableSum | 5,782.8 ns | 18.35 ns | 17.16 ns | 1.00 | 0.0076 | - | - | 48 B |
| StructSum | 1,745.9 ns | 2.49 ns | 2.33 ns | 0.30 | - | - | - | - |
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------- |-----------:|----------:|----------:|------:|--------:|-------:|------:|------:|----------:|
| Handmaded | 554.7 ns | 11.12 ns | 16.98 ns | 0.07 | 0.00 | - | - | - | - |
| SysEnumerableSum | 7,922.7 ns | 158.48 ns | 330.81 ns | 1.00 | 0.00 | - | - | - | 48 B |
| StructSum | 3,192.7 ns | 62.72 ns | 67.11 ns | 0.40 | 0.02 | 0.0153 | - | - | 64 B |
| StructSumZeroAlloc | 721.0 ns | 11.62 ns | 10.87 ns | 0.09 | 0.00 | - | - | - | - |
20 changes: 10 additions & 10 deletions Documents/BenchmarksResults/ArrayOfIntSum.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
### Results:
``` ini

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------- |-----------:|--------:|--------:|------:|-------:|------:|------:|----------:|
| SysSum | 585.0 ns | 1.34 ns | 1.26 ns | 0.14 | - | - | - | - |
| SysEnumerableSum | 4,240.8 ns | 9.10 ns | 8.06 ns | 1.00 | 0.0076 | - | - | 32 B |
| ConvertSum | 4,798.5 ns | 5.86 ns | 5.48 ns | 1.13 | 0.0076 | - | - | 32 B |
| StructSum | 589.7 ns | 1.09 ns | 1.02 ns | 0.14 | - | - | - | - |
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------- |-----------:|---------:|---------:|------:|-------:|------:|------:|----------:|
| Handmaded | 641.2 ns | 8.73 ns | 8.16 ns | 0.15 | - | - | - | - |
| LINQ | 4,257.4 ns | 83.82 ns | 99.78 ns | 1.00 | 0.0076 | - | - | 32 B |
| StructLinqZeroAlloc | 622.3 ns | 9.07 ns | 8.48 ns | 0.15 | - | - | - | - |
| StructLinq | 782.4 ns | 11.52 ns | 9.62 ns | 0.18 | 0.0076 | - | - | 32 B |
12 changes: 6 additions & 6 deletions Documents/BenchmarksResults/ArraySelectCount.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
``` ini

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------- |---------:|---------:|---------:|------:|------:|------:|----------:|
| Linq | 17.86 μs | 0.107 μs | 0.100 μs | - | - | - | 48 B |
| StructLinq | 13.46 μs | 0.069 μs | 0.065 μs | - | - | - | 64 B |
| StructLinqZeroAlloc | 13.37 μs | 0.055 μs | 0.049 μs | - | - | - | - |
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------- |-------------:|----------:|----------:|------:|-------:|------:|------:|----------:|
| Linq | 19,973.59 ns | 34.920 ns | 32.664 ns | 1.000 | - | - | - | 48 B |
| StructLinq | 26.10 ns | 0.376 ns | 0.352 ns | 0.001 | 0.0153 | - | - | 64 B |
| StructLinqZeroAlloc | 11.54 ns | 0.016 ns | 0.013 ns | 0.001 | - | - | - | - |
19 changes: 9 additions & 10 deletions Documents/BenchmarksResults/Contains.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,16 @@
### Results:
``` ini

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------- |---------:|----------:|----------:|------:|-------:|------:|------:|----------:|
| Linq | 1.174 us | 0.0023 us | 0.0021 us | 1.00 | - | - | - | - |
| Array | 1.213 us | 0.0023 us | 0.0020 us | 1.03 | - | - | - | - |
| StructLinq | 2.146 us | 0.0038 us | 0.0035 us | 1.83 | 0.0076 | - | - | 32 B |
| StructLinqZeroAlloc | 2.818 us | 0.0045 us | 0.0042 us | 2.40 | - | - | - | - |
| Method | Mean | Error | StdDev | Median | Ratio | RatioSD | Code Size | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------- |---------:|----------:|----------:|---------:|------:|--------:|----------:|-------:|------:|------:|----------:|
| Array | 1.191 μs | 0.0142 μs | 0.0126 μs | 1.190 μs | 1.00 | 0.00 | 98 B | - | - | - | - |
| StructLinq | 2.902 μs | 0.0251 μs | 0.0209 μs | 2.896 μs | 2.44 | 0.03 | 156 B | 0.0076 | - | - | 32 B |
| StructLinqZeroAlloc | 2.923 μs | 0.0582 μs | 0.1253 μs | 2.866 μs | 2.58 | 0.13 | 236 B | - | - | - | - |
12 changes: 6 additions & 6 deletions Documents/BenchmarksResults/ListWhereSelectSum.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------------------- |---------:|---------:|---------:|------:|------:|------:|------:|----------:|
| LINQ | 65.57 μs | 0.596 μs | 0.557 μs | 1.00 | - | - | - | 152 B |
| StructLinqWithDelegate | 29.12 μs | 0.101 μs | 0.095 μs | 0.44 | - | - | - | 96 B |
| StructLinqWithDelegateZeroAlloc | 33.27 μs | 0.240 μs | 0.200 μs | 0.51 | - | - | - | - |
| StructLinqZeroAlloc | 13.71 μs | 0.034 μs | 0.032 μs | 0.21 | - | - | - | - |
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|-------------------------------- |----------:|----------:|----------:|------:|------:|------:|------:|----------:|
| LINQ | 65.640 μs | 0.3483 μs | 0.3258 μs | 1.00 | - | - | - | 152 B |
| StructLinqWithDelegate | 30.502 μs | 0.1173 μs | 0.1097 μs | 0.46 | - | - | - | 96 B |
| StructLinqWithDelegateZeroAlloc | 29.441 μs | 0.1763 μs | 0.1563 μs | 0.45 | - | - | - | - |
| StructLinqZeroAlloc | 6.303 μs | 0.0241 μs | 0.0201 μs | 0.10 | - | - | - | - |
8 changes: 4 additions & 4 deletions Documents/BenchmarksResults/RangeWhereSelectSum.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical
```
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------------------------- |----------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|
| SysSum | 6.937 μs | 0.0217 μs | 0.0170 μs | 1.00 | 0.00 | - | - | - | - |
| SysRangeWhereSelectSum | 84.396 μs | 0.6779 μs | 0.6010 μs | 12.18 | 0.11 | - | - | - | 160 B |
| ConvertWhereSelectSumWithDelegate | 72.316 μs | 0.3989 μs | 0.3732 μs | 10.43 | 0.06 | - | - | - | 40 B |
| StructRangeWhereSelectSum | 15.050 μs | 0.0400 μs | 0.0374 μs | 2.17 | 0.01 | - | - | - | - |
| SysSum | 7.019 μs | 0.0157 μs | 0.0147 μs | 1.00 | 0.00 | - | - | - | - |
| SysRangeWhereSelectSum | 83.535 μs | 0.5238 μs | 0.4900 μs | 11.90 | 0.08 | - | - | - | 160 B |
| ConvertWhereSelectSumWithDelegate | 64.815 μs | 0.2524 μs | 0.2238 μs | 9.23 | 0.03 | - | - | - | 40 B |
| StructRangeWhereSelectSum | 7.437 μs | 0.0332 μs | 0.0310 μs | 1.06 | 0.00 | - | - | - | - |
23 changes: 12 additions & 11 deletions Documents/BenchmarksResults/Sum.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,19 @@
### Results:
``` ini

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------- |----------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|
| ForSum | 2.822 us | 0.0067 us | 0.0059 us | 1.00 | 0.00 | - | - | - | - |
| SysSum | 42.149 us | 0.0726 us | 0.0643 us | 14.94 | 0.04 | - | - | - | 40 B |
| StructSum | 2.852 us | 0.0045 us | 0.0042 us | 1.01 | 0.00 | - | - | - | - |
| StructForEachSum | 2.858 us | 0.0068 us | 0.0063 us | 1.01 | 0.00 | - | - | - | - |
| ConvertSum | 42.165 us | 0.0595 us | 0.0527 us | 14.94 | 0.03 | - | - | - | 40 B |
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated | Code Size |
|------------------- |----------:|----------:|----------:|------:|--------:|------:|------:|------:|----------:|----------:|
| ForSum | 3.080 μs | 0.0561 μs | 0.0600 μs | 1.00 | 0.00 | - | - | - | - | 17 B |
| SysSum | 41.612 μs | 0.7726 μs | 0.7227 μs | 13.50 | 0.31 | - | - | - | 40 B | 445 B |
| StructSum | 5.692 μs | 0.0111 μs | 0.0104 μs | 1.85 | 0.04 | - | - | - | 24 B | 93 B |
| StructSumZeroAlloc | 3.054 μs | 0.0545 μs | 0.0510 μs | 0.99 | 0.03 | - | - | - | - | 139 B |
| StructForEachSum | 3.077 μs | 0.0591 μs | 0.0726 μs | 1.00 | 0.03 | - | - | - | - | 22 B |
| ConvertSum | 41.976 μs | 0.6487 μs | 0.5750 μs | 13.63 | 0.30 | - | - | - | 40 B | 594 B |
14 changes: 7 additions & 7 deletions Documents/BenchmarksResults/SumOnList.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
### Results:
``` ini

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19041
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.402
[Host] : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
DefaultJob : .NET Core 3.1.8 (CoreCLR 4.700.20.41105, CoreFX 4.700.20.41903), X64 RyuJIT
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19042
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-preview.7.20366.6
[Host] : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
DefaultJob : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------- |----------:|----------:|----------:|------:|------:|------:|------:|----------:|
| Linq | 61.786 us | 0.0490 us | 0.0409 us | 1.00 | - | - | - | 40 B |
| StructLinq | 5.849 us | 0.0027 us | 0.0025 us | 0.09 | - | - | - | - |
| Linq | 70.579 us | 0.7917 us | 0.7406 us | 1.00 | - | - | - | 40 B |
| StructLinq | 5.333 us | 0.0396 us | 0.0370 us | 0.08 | - | - | - | - |
14 changes: 7 additions & 7 deletions Documents/BenchmarksResults/ToArrayOnArraySelect.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@
``` ini

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated | Code Size |
|----------------------- |----------:|----------:|----------:|------:|-------:|-------:|------:|----------:|----------:|
| Linq | 17.323 μs | 0.0437 μs | 0.0387 μs | 1.00 | 8.4534 | 1.0376 | - | 39.13 KB | 0.96 KB |
| StructLinq | 22.315 μs | 0.0273 μs | 0.0228 μs | 1.29 | 8.4534 | 1.0376 | - | 39.15 KB | 0.42 KB |
| StructLinqFaster | 22.256 μs | 0.0598 μs | 0.0530 μs | 1.28 | 8.4534 | 1.0376 | - | 39.12 KB | 0.58 KB |
| StructLinqWithFunction | 8.443 μs | 0.0467 μs | 0.0365 μs | 0.49 | 8.4686 | 1.0529 | - | 39.09 KB | 0.78 KB |
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated | Code Size |
|----------------------- |---------:|---------:|---------:|------:|-------:|-------:|------:|----------:|----------:|
| Linq | 22.11 μs | 0.200 μs | 0.187 μs | 1.00 | 9.5215 | 0.0305 | - | 39.13 KB | 0.96 KB |
| StructLinq | 22.10 μs | 0.191 μs | 0.169 μs | 1.00 | 9.5215 | 0.0305 | - | 39.15 KB | 0.42 KB |
| StructLinqZeroAlloc | 27.75 μs | 0.144 μs | 0.135 μs | 1.26 | 9.5215 | 0.0305 | - | 39.12 KB | 0.58 KB |
| StructLinqWithFunction | 12.03 μs | 0.155 μs | 0.145 μs | 0.54 | 9.5215 | 0.0153 | - | 39.09 KB | 0.78 KB |
14 changes: 7 additions & 7 deletions Documents/BenchmarksResults/ToArrayOnArraySelectOfClass.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@
``` ini

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042
Intel Core i7-8750H CPU 2.20GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
Intel Core i7-7700 CPU 3.60GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.101
[Host] : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT
DefaultJob : .NET Core 5.0.1 (CoreCLR 5.0.120.57516, CoreFX 5.0.120.57516), X64 RyuJIT


```
| Method | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated | Code Size |
|----------------------- |---------:|---------:|---------:|------:|-------:|-------:|------:|----------:|----------:|
| Linq | 25.31 μs | 0.106 μs | 0.094 μs | 1.00 | 8.4534 | 1.0376 | - | 39.13 KB | 0.05 KB |
| StructLinq | 25.34 μs | 0.236 μs | 0.184 μs | 1.00 | 8.4534 | 1.0376 | - | 39.15 KB | 0.44 KB |
| StructLinqFaster | 27.77 μs | 0.240 μs | 0.225 μs | 1.10 | 8.4534 | 1.0376 | - | 39.12 KB | 0.05 KB |
| StructLinqWithFunction | 10.22 μs | 0.203 μs | 0.333 μs | 0.40 | 8.4686 | 1.0529 | - | 39.09 KB | 0.78 KB |
| Method | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated | Code Size |
|----------------------- |---------:|---------:|---------:|------:|--------:|-------:|-------:|------:|----------:|----------:|
| Linq | 31.76 μs | 0.539 μs | 0.477 μs | 1.00 | 0.00 | 9.5215 | 1.1902 | - | 39.13 KB | 0.05 KB |
| StructLinq | 31.56 μs | 0.315 μs | 0.295 μs | 0.99 | 0.02 | 9.5215 | 1.1902 | - | 39.15 KB | 0.44 KB |
| StructLinqZeroAlloc | 34.57 μs | 0.637 μs | 0.497 μs | 1.09 | 0.02 | 9.5215 | 1.1597 | - | 39.09 KB | 0.05 KB |
| StructLinqWithFunction | 13.82 μs | 0.214 μs | 0.189 μs | 0.44 | 0.01 | 9.5215 | 1.1902 | - | 39.09 KB | 0.05 KB |
Loading