Skip to content

Commit

Permalink
Fix casts to ICollection
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmada committed Jun 5, 2021
1 parent 01017e1 commit e5dfdc3
Show file tree
Hide file tree
Showing 25 changed files with 346 additions and 277 deletions.
31 changes: 17 additions & 14 deletions Benchmarks/ArrayToArrayBenchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,24 @@ BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1023 (21H1/May2021Up
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
.NET SDK=6.0.100-preview.4.21255.9
[Host] : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT
Job-SUCOWF : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT
Job-ZXXAXW : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT

Runtime=.NET 6.0

```
| Method | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------- |------ |-----------:|----------:|----------:|-----------:|------:|--------:|-------:|------:|------:|----------:|
| **ArrayClone** | **10** | **83.187 ns** | **0.5856 ns** | **0.5191 ns** | **83.125 ns** | **1.00** | **0.00** | **0.0303** | **-** | **-** | **64 B** |
| SpanToArray | 10 | 7.938 ns | 0.1489 ns | 0.1320 ns | 7.921 ns | 0.10 | 0.00 | 0.0306 | - | - | 64 B |
| CollectionCopyTo | 10 | 16.725 ns | 0.1057 ns | 0.0989 ns | 16.735 ns | 0.20 | 0.00 | 0.0305 | - | - | 64 B |
| | | | | | | | | | | | |
| **ArrayClone** | **100** | **91.920 ns** | **0.4655 ns** | **0.4127 ns** | **91.959 ns** | **1.00** | **0.00** | **0.2021** | **-** | **-** | **424 B** |
| SpanToArray | 100 | 33.381 ns | 0.7700 ns | 2.2702 ns | 32.260 ns | 0.39 | 0.02 | 0.2027 | - | - | 424 B |
| CollectionCopyTo | 100 | 39.932 ns | 0.7754 ns | 0.6874 ns | 39.978 ns | 0.43 | 0.01 | 0.2027 | - | - | 424 B |
| | | | | | | | | | | | |
| **ArrayClone** | **1000** | **284.629 ns** | **3.2346 ns** | **2.7010 ns** | **284.130 ns** | **1.00** | **0.00** | **1.9155** | **-** | **-** | **4,024 B** |
| SpanToArray | 1000 | 258.078 ns | 1.8823 ns | 1.6686 ns | 258.441 ns | 0.91 | 0.01 | 1.9226 | - | - | 4,024 B |
| CollectionCopyTo | 1000 | 245.347 ns | 3.6884 ns | 3.4501 ns | 244.683 ns | 0.86 | 0.01 | 1.9155 | - | - | 4,024 B |
| Method | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|----------------- |------ |----------:|----------:|----------:|----------:|------:|--------:|-------:|------:|------:|----------:|
| **ArrayClone** | **10** | **131.36 ns** | **7.707 ns** | **22.724 ns** | **134.45 ns** | **1.00** | **0.00** | **0.0303** | **-** | **-** | **64 B** |
| SpanToArray | 10 | 12.59 ns | 0.804 ns | 2.370 ns | 12.90 ns | 0.10 | 0.02 | 0.0306 | - | - | 64 B |
| SpanCopyTo | 10 | 12.86 ns | 0.750 ns | 2.212 ns | 13.18 ns | 0.10 | 0.03 | 0.0306 | - | - | 64 B |
| CollectionCopyTo | 10 | 19.71 ns | 1.111 ns | 3.276 ns | 19.25 ns | 0.16 | 0.04 | 0.0305 | - | - | 64 B |
| | | | | | | | | | | | |
| **ArrayClone** | **100** | **131.39 ns** | **7.409 ns** | **21.846 ns** | **120.03 ns** | **1.00** | **0.00** | **0.2019** | **-** | **-** | **424 B** |
| SpanToArray | 100 | 43.71 ns | 2.028 ns | 5.979 ns | 43.53 ns | 0.34 | 0.07 | 0.2027 | - | - | 424 B |
| SpanCopyTo | 100 | 45.43 ns | 1.786 ns | 5.238 ns | 45.30 ns | 0.35 | 0.06 | 0.2027 | - | - | 424 B |
| CollectionCopyTo | 100 | 52.84 ns | 2.653 ns | 7.822 ns | 48.41 ns | 0.41 | 0.09 | 0.2027 | - | - | 424 B |
| | | | | | | | | | | | |
| **ArrayClone** | **1000** | **339.56 ns** | **16.058 ns** | **47.348 ns** | **336.98 ns** | **1.00** | **0.00** | **1.9155** | **-** | **-** | **4,024 B** |
| SpanToArray | 1000 | 342.84 ns | 12.889 ns | 38.002 ns | 359.05 ns | 1.03 | 0.18 | 1.9226 | - | - | 4,024 B |
| SpanCopyTo | 1000 | 313.68 ns | 13.129 ns | 38.710 ns | 327.16 ns | 0.94 | 0.19 | 1.9155 | - | - | 4,024 B |
| CollectionCopyTo | 1000 | 322.00 ns | 12.162 ns | 35.670 ns | 315.88 ns | 0.97 | 0.17 | 1.9155 | - | - | 4,024 B |
14 changes: 7 additions & 7 deletions Benchmarks/RangeToArrayBenchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1023 (21H1/May2021Up
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
.NET SDK=6.0.100-preview.4.21255.9
[Host] : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT
Job-SUCOWF : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT
Job-DUCAQD : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT

Runtime=.NET 6.0

```
| Method | Categories | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------- |------------ |------ |----------:|---------:|---------:|------:|--------:|-------:|------:|------:|----------:|
| Linq | Range | 100 | 83.82 ns | 1.079 ns | 0.957 ns | 1.00 | 0.00 | 0.2218 | - | - | 464 B |
| StructLinq | Range | 100 | 87.92 ns | 1.112 ns | 1.040 ns | 1.05 | 0.02 | 0.2142 | - | - | 448 B |
| LinqFaster_SIMD | Range | 100 | 44.87 ns | 0.414 ns | 0.388 ns | 0.54 | 0.01 | 0.2027 | - | - | 424 B |
| Hyperlinq | Range | 100 | 45.34 ns | 0.845 ns | 0.791 ns | 0.54 | 0.01 | 0.2027 | - | - | 424 B |
| Linq | Range | 100 | 81.27 ns | 0.932 ns | 1.774 ns | 1.00 | 0.00 | 0.2218 | - | - | 464 B |
| StructLinq | Range | 100 | 85.57 ns | 0.620 ns | 0.580 ns | 1.04 | 0.03 | 0.2142 | - | - | 448 B |
| LinqFaster_SIMD | Range | 100 | 36.20 ns | 0.377 ns | 0.352 ns | 0.44 | 0.01 | 0.2027 | - | - | 424 B |
| Hyperlinq | Range | 100 | 41.93 ns | 0.655 ns | 0.580 ns | 0.51 | 0.02 | 0.2027 | - | - | 424 B |
| | | | | | | | | | | | |
| Linq_Async | Range_Async | 100 | 107.52 ns | 1.990 ns | 3.738 ns | 1.00 | 0.00 | 0.2257 | - | - | 472 B |
| Hyperlinq_Async | Range_Async | 100 | 159.51 ns | 3.245 ns | 3.737 ns | 1.46 | 0.08 | 0.2027 | - | - | 424 B |
| Linq_Async | Range_Async | 100 | 105.20 ns | 1.541 ns | 1.366 ns | 1.00 | 0.00 | 0.2257 | - | - | 472 B |
| Hyperlinq_Async | Range_Async | 100 | 146.42 ns | 1.256 ns | 1.175 ns | 1.39 | 0.02 | 0.2027 | - | - | 424 B |
22 changes: 11 additions & 11 deletions Benchmarks/RepeatToArrayBenchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,18 @@ BenchmarkDotNet=v0.13.0.1555-nightly, OS=Windows 10.0.19043.1023 (21H1/May2021Up
Intel Core i7-7567U CPU 3.50GHz (Kaby Lake), 1 CPU, 4 logical and 2 physical cores
.NET SDK=6.0.100-preview.4.21255.9
[Host] : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT
Job-SUCOWF : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT
Job-DUCAQD : .NET 6.0.0 (6.0.21.25307), X64 RyuJIT

Runtime=.NET 6.0

```
| Method | Categories | Count | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------- |------------- |------ |----------:|---------:|---------:|----------:|------:|--------:|-------:|------:|------:|----------:|
| Linq | Repeat | 100 | 80.60 ns | 0.607 ns | 0.538 ns | 80.59 ns | 1.00 | 0.00 | 0.2180 | - | - | 456 B |
| StructLinq | Repeat | 100 | 89.59 ns | 0.325 ns | 0.288 ns | 89.70 ns | 1.11 | 0.01 | 0.2142 | - | - | 448 B |
| LinqFaster_SIMD | Repeat | 100 | 30.88 ns | 0.668 ns | 0.686 ns | 30.89 ns | 0.38 | 0.01 | 0.2027 | - | - | 424 B |
| Hyperlinq | Repeat | 100 | 56.78 ns | 0.811 ns | 0.719 ns | 56.77 ns | 0.70 | 0.01 | 0.2027 | - | - | 424 B |
| Hyperlinq_SIMD | Repeat | 100 | 39.50 ns | 0.827 ns | 0.849 ns | 39.70 ns | 0.49 | 0.01 | 0.2027 | - | - | 424 B |
| | | | | | | | | | | | | |
| Linq_Async | Repeat_Async | 100 | 96.49 ns | 1.982 ns | 4.554 ns | 94.05 ns | 1.00 | 0.00 | 0.2257 | - | - | 472 B |
| Hyperlinq_Async | Repeat_Async | 100 | 180.18 ns | 3.646 ns | 4.868 ns | 182.13 ns | 1.84 | 0.08 | 0.2027 | - | - | 424 B |
| Method | Categories | Count | Mean | Error | StdDev | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---------------- |------------- |------ |----------:|---------:|---------:|------:|--------:|-------:|------:|------:|----------:|
| Linq | Repeat | 100 | 75.53 ns | 0.909 ns | 0.851 ns | 1.00 | 0.00 | 0.2180 | - | - | 456 B |
| StructLinq | Repeat | 100 | 79.08 ns | 0.694 ns | 0.649 ns | 1.05 | 0.02 | 0.2142 | - | - | 448 B |
| LinqFaster_SIMD | Repeat | 100 | 27.64 ns | 0.234 ns | 0.195 ns | 0.37 | 0.01 | 0.2027 | - | - | 424 B |
| Hyperlinq | Repeat | 100 | 53.12 ns | 0.632 ns | 0.528 ns | 0.70 | 0.01 | 0.2027 | - | - | 424 B |
| Hyperlinq_SIMD | Repeat | 100 | 37.55 ns | 0.457 ns | 0.405 ns | 0.50 | 0.01 | 0.2027 | - | - | 424 B |
| | | | | | | | | | | | |
| Linq_Async | Repeat_Async | 100 | 90.23 ns | 0.866 ns | 0.723 ns | 1.00 | 0.00 | 0.2257 | - | - | 472 B |
| Hyperlinq_Async | Repeat_Async | 100 | 117.80 ns | 1.777 ns | 1.576 ns | 1.31 | 0.02 | 0.2027 | - | - | 424 B |
Loading

0 comments on commit e5dfdc3

Please sign in to comment.