|
4 | 4 | [ArrayToArrayBenchmarks.cs](../NetFabric.Hyperlinq.Benchmarks/Benchmarks/ArrayToArrayBenchmarks.cs) |
5 | 5 |
|
6 | 6 | ### References: |
7 | | -- Linq: 6.0.0-preview.5.21301.5 |
| 7 | +- Linq: 6.0.0-preview.7.21377.19 |
8 | 8 | - System.Linq.Async: [5.0.0](https://www.nuget.org/packages/System.Linq.Async/5.0.0) |
9 | 9 | - System.Interactive: [5.0.0](https://www.nuget.org/packages/System.Interactive/5.0.0) |
10 | 10 | - 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) |
13 | 13 |
|
14 | 14 | ### Results: |
15 | 15 | ``` ini |
16 | 16 |
|
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 |
22 | 22 |
|
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 |
24 | 24 |
|
25 | 25 | ``` |
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 | |
0 commit comments