Benchmarks for implementation of Array.Parallel.GroupBy
There are two main baselines to compare with:
- Array.groupBy ; especially for smaller sizes (<100K) OR very cheap projection. Has the lowest allocation profile
- PLINQ's GroupBy, especially for bigger sizes (>100K) OR expensive projections
The benchmark uses three main profiles which differ in:
- The number of final groups/buckets (controlled by modulo operation)
- Time complexity of the projection. More complex gives advantage to parallel scenarios, since the projection function can be parallelized.
- Especially for the combination of many final buckets AND having a cheap projection function the inner overhead of .groupBy implementation stands out.
- Ref vs Struct
- Cheap vs expensive projection
- Few vs many resulting buckets
type ReferenceRecordExpensiveProjection = {Id : int; Value : float}
with interface IBenchMarkElement<ReferenceRecordExpensiveProjection>
with
static member Create(id,value) = {Id = id; Value = value}
static member Projection() = fun x -> (x.Id.ToString().GetHashCode() * (x.Value |> sin |> string |> hash)) % 20
type ReferenceRecordNormal = {Id : int; Value : float}
with interface IBenchMarkElement<ReferenceRecordNormal>
with
static member Create(id,value) = {Id = id; Value = value}
static member Projection() = fun x -> (x.Id ) % 128
type ReferenceRecordManyBuckets = {Id : int; Value : float}
with interface IBenchMarkElement<ReferenceRecordManyBuckets>
with
static member Create(id,value) = {Id = id; Value = value}
static member Projection() = fun x -> (x.Value.GetHashCode() * x.Id.GetHashCode() ) % 10_000
[<Struct>]
type StructRecord = {Id : int; Value : float}
with interface IBenchMarkElement<StructRecord>
with
static member Create(id,value) = {Id = id; Value = value}
static member Projection() = fun x -> x.Id % 20
[<Struct>]
type StructRecordManyBuckets = {Id : int; Value : float}
with interface IBenchMarkElement<StructRecordManyBuckets>
with
static member Create(id,value) = {Id = id; Value = value}
static member Projection() = fun x -> x.Id % 10_000BenchmarkDotNet=v0.13.5, OS=Windows 11 (10.0.22621.1265/22H2/2022Update/SunValley2) 11th Gen Intel Core i9-11950H 2.60GHz, 1 CPU, 16 logical and 8 physical cores .NET SDK=7.0.200 [Host] : .NET 7.0.3 (7.0.323.6910), X64 RyuJIT AVX2 DEBUG DefaultJob : .NET 7.0.3 (7.0.323.6910), X64 RyuJIT AVX2
| Method | Type | NumberOfItems | Mean | Error | StdDev | Median | Ratio | RatioSD | Completed Work Items | Lock Contentions | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SortByForReference | StructRecord | 4000 | 157.34 us | 3.130 us | 4.589 us | 158.66 us | 0.64 | 0.02 | - | - | 7.5684 | - | - | 93.8 KB | 0.09 |
| ArrayGroupBy | StructRecord | 4000 | 49.91 us | 0.502 us | 0.445 us | 49.93 us | 0.20 | 0.00 | - | - | 18.6157 | 5.9814 | - | 228.49 KB | 0.22 |
| PLINQDefault | StructRecord | 4000 | 243.54 us | 4.831 us | 5.169 us | 241.53 us | 1.00 | 0.00 | 15.0000 | 11.5552 | 89.1113 | 71.5332 | - | 1050.09 KB | 1.00 |
| EachChunkSeparatelyThenMerge | StructRecord | 4000 | 50.78 us | 1.011 us | 1.661 us | 50.28 us | 0.21 | 0.01 | 17.4300 | 0.0014 | 36.9873 | 18.3716 | - | 373.26 KB | 0.36 |
| EachChunkSeparatelyThenCombineArrayBuilders | StructRecord | 4000 | 78.19 us | 1.523 us | 2.233 us | 78.42 us | 0.32 | 0.01 | 4.1427 | - | 41.6260 | 19.7754 | - | 443.71 KB | 0.42 |
| GroupByInPlaceViaSortAndParallelSegmentation | StructRecord | 4000 | 232.69 us | 4.625 us | 6.922 us | 231.60 us | 0.97 | 0.04 | 12.9634 | 0.0007 | 33.2031 | 2.1973 | - | 408.75 KB | 0.39 |
| SortThenCreateGroups | StructRecord | 4000 | 60.08 us | 1.200 us | 2.757 us | 60.60 us | 0.25 | 0.01 | - | - | 7.0801 | 1.3428 | - | 87.22 KB | 0.08 |
| GroupByInPlaceViaSort | StructRecord | 4000 | 201.53 us | 1.099 us | 0.974 us | 201.29 us | 0.83 | 0.02 | 11.9299 | 0.0012 | 33.4473 | 2.1973 | - | 410.21 KB | 0.39 |
| FullyOnParallelFor | StructRecord | 4000 | 99.33 us | 0.484 us | 0.429 us | 99.49 us | 0.41 | 0.01 | 16.9712 | 0.4312 | 26.0010 | 25.8789 | 4.6387 | 301.7 KB | 0.29 |
| CountByThenAssign | StructRecord | 4000 | 93.26 us | 0.593 us | 0.555 us | 93.27 us | 0.38 | 0.01 | 39.0732 | 0.0035 | 28.0762 | 2.1973 | - | 331.57 KB | 0.32 |
| ConcurrentMultiDictionairy | StructRecord | 4000 | 238.74 us | 4.677 us | 7.142 us | 238.31 us | 0.99 | 0.04 | 21.9253 | 3.8013 | 43.4570 | 43.2129 | 10.0098 | 511.05 KB | 0.49 |
| SortByForReference | StructRecord | 50000 | 3,174.35 us | 59.483 us | 125.470 us | 3,122.32 us | 3.77 | 0.11 | - | - | 281.2500 | 281.2500 | 281.2500 | 1172.01 KB | 0.20 |
| ArrayGroupBy | StructRecord | 50000 | 614.27 us | 12.269 us | 26.932 us | 628.04 us | 0.70 | 0.04 | - | - | 272.4609 | 181.6406 | - | 3349.12 KB | 0.58 |
| PLINQDefault | StructRecord | 50000 | 875.69 us | 15.741 us | 13.954 us | 875.29 us | 1.00 | 0.00 | 15.0000 | 11.1084 | 543.9453 | 509.7656 | - | 5732.01 KB | 1.00 |
| EachChunkSeparatelyThenMerge | StructRecord | 50000 | 460.99 us | 2.040 us | 1.909 us | 460.91 us | 0.53 | 0.01 | 20.9961 | 0.0098 | 441.8945 | 419.9219 | - | 4074.11 KB | 0.71 |
| EachChunkSeparatelyThenCombineArrayBuilders | StructRecord | 50000 | 523.48 us | 4.572 us | 4.053 us | 522.71 us | 0.60 | 0.01 | 11.4053 | 0.0049 | 448.2422 | 436.5234 | - | 4462.82 KB | 0.78 |
| GroupByInPlaceViaSortAndParallelSegmentation | StructRecord | 50000 | 2,547.58 us | 48.945 us | 66.996 us | 2,536.83 us | 2.90 | 0.08 | 16.8125 | 0.0039 | 437.5000 | 58.5938 | 58.5938 | 4903.19 KB | 0.86 |
| SortThenCreateGroups | StructRecord | 50000 | 1,400.43 us | 7.804 us | 6.918 us | 1,400.28 us | 1.60 | 0.03 | - | - | 250.0000 | 250.0000 | 250.0000 | 985.73 KB | 0.17 |
| GroupByInPlaceViaSort | StructRecord | 50000 | 2,496.83 us | 48.360 us | 62.882 us | 2,499.68 us | 2.84 | 0.09 | 16.2500 | - | 437.5000 | 58.5938 | 58.5938 | 4904.5 KB | 0.86 |
| FullyOnParallelFor | StructRecord | 50000 | 854.59 us | 17.002 us | 47.955 us | 852.22 us | 0.98 | 0.06 | 26.8164 | 0.5313 | 355.4688 | 296.8750 | 140.6250 | 3258.99 KB | 0.57 |
| CountByThenAssign | StructRecord | 50000 | 867.73 us | 3.743 us | 2.922 us | 868.52 us | 0.99 | 0.02 | 43.5020 | 0.0342 | 331.0547 | 68.3594 | - | 3926.11 KB | 0.68 |
| ConcurrentMultiDictionairy | StructRecord | 50000 | 1,894.83 us | 37.555 us | 102.806 us | 1,878.45 us | 2.28 | 0.13 | 29.2578 | 4.5352 | 671.8750 | 287.1094 | 103.5156 | 6129.31 KB | 1.07 |
| SortByForReference | StructRecord | 100000 | 6,526.54 us | 36.659 us | 32.497 us | 6,531.85 us | 3.87 | 0.05 | - | - | 351.5625 | 351.5625 | 351.5625 | 2343.91 KB | 0.24 |
| ArrayGroupBy | StructRecord | 100000 | 1,491.09 us | 29.821 us | 48.997 us | 1,482.91 us | 0.90 | 0.03 | - | - | 906.2500 | 882.8125 | 570.3125 | 6691 KB | 0.68 |
| PLINQDefault | StructRecord | 100000 | 1,688.95 us | 23.949 us | 22.402 us | 1,692.59 us | 1.00 | 0.00 | 15.0000 | 11.9238 | 925.7813 | 898.4375 | - | 9850.66 KB | 1.00 |
| EachChunkSeparatelyThenMerge | StructRecord | 100000 | 7,765.79 us | 34.612 us | 30.683 us | 7,766.55 us | 4.60 | 0.07 | 11.6797 | - | 867.1875 | 859.3750 | 492.1875 | 6462.66 KB | 0.66 |
| EachChunkSeparatelyThenCombineArrayBuilders | StructRecord | 100000 | 7,792.92 us | 111.135 us | 103.956 us | 7,783.29 us | 4.61 | 0.08 | 6.2734 | - | 937.5000 | 929.6875 | 500.0000 | 7579.44 KB | 0.77 |
| GroupByInPlaceViaSortAndParallelSegmentation | StructRecord | 100000 | 5,906.01 us | 114.729 us | 160.834 us | 5,922.58 us | 3.52 | 0.12 | 18.2109 | 0.0156 | 875.0000 | 109.3750 | 109.3750 | 9786.35 KB | 0.99 |
| SortThenCreateGroups | StructRecord | 100000 | 2,941.68 us | 39.248 us | 34.793 us | 2,946.18 us | 1.74 | 0.02 | - | - | 496.0938 | 496.0938 | 496.0938 | 1962.37 KB | 0.20 |
| GroupByInPlaceViaSort | StructRecord | 100000 | 5,401.30 us | 60.446 us | 53.584 us | 5,409.64 us | 3.20 | 0.05 | 16.9531 | 0.0078 | 875.0000 | 109.3750 | 109.3750 | 9787.61 KB | 0.99 |
| FullyOnParallelFor | StructRecord | 100000 | 2,457.95 us | 48.062 us | 60.783 us | 2,453.39 us | 1.46 | 0.04 | 27.2422 | 0.5391 | 757.8125 | 472.6563 | 171.8750 | 6301.58 KB | 0.64 |
| CountByThenAssign | StructRecord | 100000 | 1,829.96 us | 22.224 us | 19.701 us | 1,824.30 us | 1.08 | 0.02 | 42.9219 | 0.0566 | 650.3906 | 134.7656 | - | 7832.15 KB | 0.80 |
| ConcurrentMultiDictionairy | StructRecord | 100000 | 4,520.13 us | 117.857 us | 347.505 us | 4,485.39 us | 2.59 | 0.12 | 35.8516 | 9.0938 | 1390.6250 | 593.7500 | 203.1250 | 12294.87 KB | 1.25 |
| SortByForReference | StructRecord | 500000 | 37,637.68 us | 596.748 us | 558.198 us | 37,700.91 us | 2.29 | 0.12 | - | - | 428.5714 | 428.5714 | 428.5714 | 11718.96 KB | 0.27 |
| ArrayGroupBy | StructRecord | 500000 | 10,356.70 us | 203.026 us | 350.209 us | 10,327.10 us | 0.65 | 0.05 | - | - | 1109.3750 | 1078.1250 | 906.2500 | 28302.64 KB | 0.66 |
| PLINQDefault | StructRecord | 500000 | 16,173.89 us | 338.247 us | 997.330 us | 16,213.97 us | 1.00 | 0.00 | 15.0000 | 9.8438 | 2875.0000 | 2656.2500 | 968.7500 | 43070.85 KB | 1.00 |
| EachChunkSeparatelyThenMerge | StructRecord | 500000 | 16,518.88 us | 328.457 us | 449.596 us | 16,640.92 us | 1.03 | 0.07 | 24.2500 | 0.0313 | 3562.5000 | 3531.2500 | 1000.0000 | 51212.87 KB | 1.19 |
| EachChunkSeparatelyThenCombineArrayBuilders | StructRecord | 500000 | 16,336.73 us | 320.264 us | 507.973 us | 16,246.87 us | 1.02 | 0.07 | 13.7500 | - | 3625.0000 | 3250.0000 | 1000.0000 | 52208.41 KB | 1.21 |
| GroupByInPlaceViaSortAndParallelSegmentation | StructRecord | 500000 | 21,331.05 us | 210.012 us | 196.445 us | 21,212.17 us | 1.30 | 0.07 | 25.8750 | - | 3937.5000 | 125.0000 | 125.0000 | 48848.84 KB | 1.13 |
| SortThenCreateGroups | StructRecord | 500000 | 17,180.11 us | 324.902 us | 303.914 us | 17,116.36 us | 1.05 | 0.05 | - | - | 437.5000 | 437.5000 | 437.5000 | 9774.87 KB | 0.23 |
| GroupByInPlaceViaSort | StructRecord | 500000 | 21,691.25 us | 433.745 us | 464.102 us | 21,630.39 us | 1.33 | 0.08 | 22.4688 | - | 3937.5000 | 125.0000 | 125.0000 | 48849.87 KB | 1.13 |
| FullyOnParallelFor | StructRecord | 500000 | 11,887.66 us | 236.797 us | 686.992 us | 11,963.15 us | 0.74 | 0.06 | 32.1563 | 0.2969 | 2593.7500 | 2046.8750 | 656.2500 | 30962.9 KB | 0.72 |
| CountByThenAssign | StructRecord | 500000 | 11,931.59 us | 192.701 us | 180.253 us | 11,918.91 us | 0.73 | 0.04 | 47.5156 | 0.0156 | 2828.1250 | 281.2500 | 265.6250 | 39100.24 KB | 0.91 |
| ConcurrentMultiDictionairy | StructRecord | 500000 | 17,493.32 us | 345.831 us | 815.164 us | 17,530.02 us | 1.09 | 0.09 | 35.3438 | 1.2188 | 5625.0000 | 2875.0000 | 843.7500 | 61952.84 KB | 1.44 |
| SortByForReference | StructRecord | 2500000 | 217,358.97 us | 4,328.276 us | 4,631.207 us | 217,611.15 us | 5.17 | 0.33 | - | - | 333.3333 | 333.3333 | 333.3333 | 58594.07 KB | 0.32 |
| ArrayGroupBy | StructRecord | 2500000 | 42,360.29 us | 741.462 us | 693.564 us | 42,506.54 us | 1.00 | 0.06 | - | - | 1000.0000 | 923.0769 | 846.1538 | 120993.02 KB | 0.67 |
| PLINQDefault | StructRecord | 2500000 | 42,835.68 us | 850.729 us | 2,005.268 us | 43,037.62 us | 1.00 | 0.00 | 15.0000 | 8.9167 | 3916.6667 | 3833.3333 | 1166.6667 | 181879.57 KB | 1.00 |
| EachChunkSeparatelyThenMerge | StructRecord | 2500000 | 35,884.55 us | 716.966 us | 1,950.558 us | 35,530.14 us | 0.84 | 0.07 | 32.0667 | 0.0667 | 3400.0000 | 3333.3333 | 800.0000 | 216953.08 KB | 1.19 |
| EachChunkSeparatelyThenCombineArrayBuilders | StructRecord | 2500000 | 45,426.26 us | 904.293 us | 2,166.627 us | 45,419.99 us | 1.06 | 0.07 | 16.9167 | - | 4583.3333 | 4500.0000 | 1166.6667 | 228075.05 KB | 1.25 |
| GroupByInPlaceViaSortAndParallelSegmentation | StructRecord | 2500000 | 103,691.41 us | 1,217.204 us | 1,079.020 us | 103,827.09 us | 2.46 | 0.14 | 30.2000 | - | 19000.0000 | - | - | 244161.75 KB | 1.34 |
| SortThenCreateGroups | StructRecord | 2500000 | 91,213.97 us | 1,823.729 us | 2,027.070 us | 91,652.52 us | 2.17 | 0.12 | - | - | 333.3333 | 333.3333 | 333.3333 | 48837.41 KB | 0.27 |
| GroupByInPlaceViaSort | StructRecord | 2500000 | 100,719.91 us | 1,843.694 us | 1,893.338 us | 100,587.23 us | 2.40 | 0.14 | 23.0000 | - | 19000.0000 | - | - | 244162.33 KB | 1.34 |
| FullyOnParallelFor | StructRecord | 2500000 | 25,495.58 us | 503.003 us | 1,093.487 us | 25,357.96 us | 0.60 | 0.04 | 33.2500 | 0.0313 | 4687.5000 | 4062.5000 | 1343.7500 | 157515.61 KB | 0.87 |
| CountByThenAssign | StructRecord | 2500000 | 56,053.18 us | 1,090.336 us | 1,492.465 us | 55,971.84 us | 1.33 | 0.07 | 51.3000 | - | 13300.0000 | 500.0000 | 500.0000 | 195359.31 KB | 1.07 |
| ConcurrentMultiDictionairy | StructRecord | 2500000 | 52,668.53 us | 1,041.496 us | 1,878.031 us | 52,364.62 us | 1.24 | 0.07 | 33.9000 | 0.1000 | 19400.0000 | 7300.0000 | 2000.0000 | 305667.22 KB | 1.68 |
| SortByForReference | StructRecord | 25000000 | 2,351,806.25 us | 35,022.826 us | 32,760.374 us | 2,351,706.60 us | 9.06 | 0.26 | - | - | - | - | - | 585938.04 KB | 0.22 |
| ArrayGroupBy | StructRecord | 25000000 | 450,170.88 us | 8,940.527 us | 9,937.372 us | 453,347.10 us | 1.73 | 0.05 | - | - | 1000.0000 | 1000.0000 | 1000.0000 | 1701357.91 KB | 0.63 |
| PLINQDefault | StructRecord | 25000000 | 260,563.92 us | 5,183.680 us | 6,740.248 us | 261,579.40 us | 1.00 | 0.00 | 15.0000 | 12.0000 | 3000.0000 | 2000.0000 | 1000.0000 | 2683902.65 KB | 1.00 |
| EachChunkSeparatelyThenMerge | StructRecord | 25000000 | 132,646.36 us | 2,627.391 us | 6,591.610 us | 131,395.10 us | 0.50 | 0.03 | 33.7500 | - | 3250.0000 | 3000.0000 | 750.0000 | 1560284.26 KB | 0.58 |
| EachChunkSeparatelyThenCombineArrayBuilders | StructRecord | 25000000 | 175,806.91 us | 3,501.767 us | 7,686.464 us | 174,434.13 us | 0.67 | 0.03 | 17.0000 | - | 3333.3333 | 3000.0000 | 1000.0000 | 1824184.33 KB | 0.68 |
| GroupByInPlaceViaSortAndParallelSegmentation | StructRecord | 25000000 | 1,042,473.76 us | 20,116.113 us | 23,165.746 us | 1,040,516.30 us | 4.00 | 0.14 | 39.0000 | - | 191000.0000 | - | - | 2441429.22 KB | 0.91 |
| SortThenCreateGroups | StructRecord | 25000000 | 993,415.19 us | 17,578.828 us | 13,724.393 us | 994,472.35 us | 3.81 | 0.12 | - | - | - | - | - | 488290.84 KB | 0.18 |
| GroupByInPlaceViaSort | StructRecord | 25000000 | 1,024,796.18 us | 19,337.125 us | 25,814.506 us | 1,023,253.00 us | 3.94 | 0.13 | 24.0000 | - | 191000.0000 | - | - | 2441428.21 KB | 0.91 |
| FullyOnParallelFor | StructRecord | 25000000 | 161,913.25 us | 3,226.153 us | 4,626.852 us | 162,039.39 us | 0.62 | 0.03 | 35.2500 | - | 4500.0000 | 3750.0000 | 1500.0000 | 1624547.79 KB | 0.61 |
| CountByThenAssign | StructRecord | 25000000 | 467,014.02 us | 8,266.653 us | 7,732.632 us | 467,222.20 us | 1.80 | 0.07 | 71.0000 | - | 128000.0000 | - | - | 1953147.88 KB | 0.73 |
| ConcurrentMultiDictionairy | StructRecord | 25000000 | 298,155.50 us | 5,123.819 us | 4,792.823 us | 296,976.25 us | 1.15 | 0.04 | 36.0000 | - | 135000.0000 | 10000.0000 | 2500.0000 | 3214718.71 KB | 1.20 |
| SortByForReference | ReferenceRecord | 4000 | 204.26 us | 4.023 us | 4.633 us | 203.94 us | 0.83 | 0.02 | - | - | 4.8828 | 0.2441 | - | 62.55 KB | 0.08 |
| ArrayGroupBy | ReferenceRecord | 4000 | 51.78 us | 1.034 us | 1.699 us | 52.23 us | 0.21 | 0.01 | - | - | 10.1929 | 1.8921 | - | 125.26 KB | 0.16 |
| PLINQDefault | ReferenceRecord | 4000 | 247.80 us | 3.303 us | 3.090 us | 247.74 us | 1.00 | 0.00 | 15.0000 | 11.4233 | 63.9648 | 41.0156 | - | 773.76 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ReferenceRecord | 4000 | 109.82 us | 2.196 us | 5.218 us | 107.46 us | 0.44 | 0.02 | 11.9973 | 0.0029 | 48.9502 | 28.4424 | - | 554.64 KB | 0.72 |
| EachChunkSeparatelyThenCombineArrayBuilders | ReferenceRecord | 4000 | 217.00 us | 4.247 us | 5.954 us | 214.73 us | 0.88 | 0.03 | 5.5830 | - | 64.2090 | 35.8887 | - | 755.44 KB | 0.98 |
| GroupByInPlaceViaSortAndParallelSegmentation | ReferenceRecord | 4000 | 218.13 us | 1.536 us | 1.437 us | 218.43 us | 0.88 | 0.01 | 13.8711 | 0.0005 | 34.1797 | 2.1973 | - | 418.83 KB | 0.54 |
| SortThenCreateGroups | ReferenceRecord | 4000 | 127.26 us | 2.498 us | 3.503 us | 128.75 us | 0.51 | 0.01 | - | - | 4.8828 | 0.4883 | - | 61.03 KB | 0.08 |
| GroupByInPlaceViaSort | ReferenceRecord | 4000 | 212.67 us | 1.647 us | 1.541 us | 212.82 us | 0.86 | 0.01 | 12.6609 | 0.0017 | 33.9355 | 2.1973 | - | 415.49 KB | 0.54 |
| FullyOnParallelFor | ReferenceRecord | 4000 | 241.76 us | 2.695 us | 2.520 us | 241.30 us | 0.98 | 0.02 | 11.2432 | 0.0088 | 25.3906 | 24.9023 | 3.9063 | 305.94 KB | 0.40 |
| CountByThenAssign | ReferenceRecord | 4000 | 101.80 us | 0.608 us | 0.539 us | 101.60 us | 0.41 | 0.01 | 37.0566 | 0.0433 | 27.0996 | 2.0752 | - | 329.94 KB | 0.43 |
| ConcurrentMultiDictionairy | ReferenceRecord | 4000 | 1,941.97 us | 38.291 us | 73.773 us | 1,940.40 us | 8.05 | 0.31 | 27.4648 | 14.3086 | 87.8906 | 85.9375 | 27.3438 | 1070.21 KB | 1.38 |
| SortByForReference | ReferenceRecord | 50000 | 4,264.17 us | 83.506 us | 99.408 us | 4,255.76 us | 5.04 | 0.16 | - | - | 242.1875 | 242.1875 | 242.1875 | 781.38 KB | 0.25 |
| ArrayGroupBy | ReferenceRecord | 50000 | 606.51 us | 11.923 us | 19.921 us | 605.46 us | 0.73 | 0.03 | - | - | 118.1641 | 60.5469 | - | 1456.63 KB | 0.46 |
| PLINQDefault | ReferenceRecord | 50000 | 845.74 us | 13.877 us | 12.302 us | 842.95 us | 1.00 | 0.00 | 15.0000 | 11.4229 | 302.7344 | 231.4453 | - | 3153.13 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ReferenceRecord | 50000 | 563.23 us | 11.258 us | 8.789 us | 563.36 us | 0.67 | 0.01 | 18.3857 | 0.0127 | 321.2891 | 287.1094 | - | 3773.92 KB | 1.20 |
| EachChunkSeparatelyThenCombineArrayBuilders | ReferenceRecord | 50000 | 789.58 us | 7.002 us | 6.207 us | 790.30 us | 0.93 | 0.02 | 8.1240 | - | 341.7969 | 290.0391 | - | 4136.34 KB | 1.31 |
| GroupByInPlaceViaSortAndParallelSegmentation | ReferenceRecord | 50000 | 2,709.13 us | 43.395 us | 40.592 us | 2,701.99 us | 3.20 | 0.06 | 18.3359 | 0.0078 | 394.5313 | 62.5000 | 62.5000 | 4911.85 KB | 1.56 |
| SortThenCreateGroups | ReferenceRecord | 50000 | 2,448.40 us | 48.833 us | 61.759 us | 2,464.13 us | 2.90 | 0.08 | - | - | 179.6875 | 179.6875 | 179.6875 | 600.15 KB | 0.19 |
| GroupByInPlaceViaSort | ReferenceRecord | 50000 | 2,596.90 us | 16.191 us | 15.145 us | 2,600.54 us | 3.07 | 0.05 | 16.9180 | 0.0078 | 394.5313 | 62.5000 | 62.5000 | 4908.44 KB | 1.56 |
| FullyOnParallelFor | ReferenceRecord | 50000 | 1,178.91 us | 23.243 us | 38.834 us | 1,174.29 us | 1.39 | 0.06 | 17.2578 | 2.1777 | 171.8750 | 167.9688 | 33.2031 | 1961.88 KB | 0.62 |
| CountByThenAssign | ReferenceRecord | 50000 | 834.37 us | 5.530 us | 4.902 us | 832.71 us | 0.99 | 0.02 | 45.1113 | 0.2070 | 299.8047 | 50.7813 | - | 3565.4 KB | 1.13 |
| ConcurrentMultiDictionairy | ReferenceRecord | 50000 | 8,698.99 us | 172.120 us | 169.045 us | 8,673.17 us | 10.29 | 0.30 | 33.0469 | 19.9375 | 421.8750 | 171.8750 | 46.8750 | 4588.27 KB | 1.46 |
| SortByForReference | ReferenceRecord | 100000 | 9,470.64 us | 181.410 us | 208.912 us | 9,496.19 us | 4.31 | 0.13 | - | - | 484.3750 | 484.3750 | 484.3750 | 1562.71 KB | 0.24 |
| ArrayGroupBy | ReferenceRecord | 100000 | 1,270.70 us | 25.314 us | 49.374 us | 1,279.81 us | 0.58 | 0.03 | - | - | 234.3750 | 169.9219 | - | 2874.26 KB | 0.43 |
| PLINQDefault | ReferenceRecord | 100000 | 2,203.17 us | 41.530 us | 58.219 us | 2,207.53 us | 1.00 | 0.00 | 15.0000 | 11.0117 | 734.3750 | 636.7188 | - | 6645.73 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ReferenceRecord | 100000 | 7,818.32 us | 59.613 us | 55.762 us | 7,840.36 us | 3.55 | 0.10 | 12.7422 | 0.0078 | 773.4375 | 773.4375 | 500.0000 | 5767.98 KB | 0.87 |
| EachChunkSeparatelyThenCombineArrayBuilders | ReferenceRecord | 100000 | 7,828.13 us | 59.294 us | 55.464 us | 7,849.83 us | 3.55 | 0.09 | 7.0078 | - | 820.3125 | 820.3125 | 507.8125 | 6495.77 KB | 0.98 |
| GroupByInPlaceViaSortAndParallelSegmentation | ReferenceRecord | 100000 | 5,789.14 us | 114.804 us | 171.833 us | 5,776.25 us | 2.63 | 0.11 | 21.4844 | 0.0078 | 867.1875 | 109.3750 | 109.3750 | 9798.69 KB | 1.47 |
| SortThenCreateGroups | ReferenceRecord | 100000 | 5,050.16 us | 53.140 us | 49.707 us | 5,043.84 us | 2.29 | 0.07 | - | - | 289.0625 | 289.0625 | 289.0625 | 1186.12 KB | 0.18 |
| GroupByInPlaceViaSort | ReferenceRecord | 100000 | 5,715.70 us | 96.587 us | 85.622 us | 5,728.81 us | 2.60 | 0.07 | 19.5625 | 0.0156 | 875.0000 | 117.1875 | 117.1875 | 9796.78 KB | 1.47 |
| FullyOnParallelFor | ReferenceRecord | 100000 | 2,427.00 us | 48.527 us | 91.146 us | 2,423.34 us | 1.11 | 0.06 | 18.2422 | 1.8203 | 371.0938 | 316.4063 | 62.5000 | 3566.9 KB | 0.54 |
| CountByThenAssign | ReferenceRecord | 100000 | 1,747.19 us | 15.304 us | 14.315 us | 1,745.05 us | 0.79 | 0.02 | 45.2188 | 0.1270 | 597.6563 | 89.8438 | - | 7080.92 KB | 1.07 |
| ConcurrentMultiDictionairy | ReferenceRecord | 100000 | 17,957.19 us | 338.057 us | 347.160 us | 17,794.89 us | 8.16 | 0.27 | 32.3438 | 14.2188 | 843.7500 | 375.0000 | 93.7500 | 9032.12 KB | 1.36 |
| SortByForReference | ReferenceRecord | 500000 | 51,071.36 us | 959.013 us | 984.836 us | 50,980.00 us | 1.46 | 0.06 | - | - | 300.0000 | 300.0000 | 300.0000 | 7812.68 KB | 0.28 |
| ArrayGroupBy | ReferenceRecord | 500000 | 7,585.85 us | 151.184 us | 280.229 us | 7,577.83 us | 0.22 | 0.01 | - | - | 984.3750 | 867.1875 | - | 12149.26 KB | 0.43 |
| PLINQDefault | ReferenceRecord | 500000 | 34,764.75 us | 688.029 us | 1,341.948 us | 34,689.98 us | 1.00 | 0.00 | 15.0000 | 8.6250 | 3687.5000 | 3625.0000 | 812.5000 | 28300.55 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ReferenceRecord | 500000 | 18,770.70 us | 568.575 us | 1,676.457 us | 19,016.67 us | 0.54 | 0.05 | 20.9375 | - | 1437.5000 | 1375.0000 | 500.0000 | 25954.92 KB | 0.92 |
| EachChunkSeparatelyThenCombineArrayBuilders | ReferenceRecord | 500000 | 24,604.30 us | 689.938 us | 2,034.298 us | 24,569.50 us | 0.71 | 0.06 | 13.0625 | - | 1937.5000 | 1812.5000 | 843.7500 | 28724.02 KB | 1.01 |
| GroupByInPlaceViaSortAndParallelSegmentation | ReferenceRecord | 500000 | 24,173.86 us | 405.893 us | 359.814 us | 24,155.61 us | 0.69 | 0.03 | 25.2500 | - | 3937.5000 | 125.0000 | 125.0000 | 48859.07 KB | 1.73 |
| SortThenCreateGroups | ReferenceRecord | 500000 | 30,134.98 us | 582.896 us | 572.481 us | 30,035.98 us | 0.86 | 0.03 | - | - | 312.5000 | 312.5000 | 312.5000 | 5873.64 KB | 0.21 |
| GroupByInPlaceViaSort | ReferenceRecord | 500000 | 24,149.03 us | 433.996 us | 622.425 us | 24,189.89 us | 0.69 | 0.03 | 22.0313 | - | 3937.5000 | 125.0000 | 125.0000 | 48855.62 KB | 1.73 |
| FullyOnParallelFor | ReferenceRecord | 500000 | 14,822.86 us | 289.980 us | 551.717 us | 14,956.39 us | 0.43 | 0.02 | 26.7500 | 1.7188 | 1843.7500 | 1125.0000 | 218.7500 | 15874.08 KB | 0.56 |
| CountByThenAssign | ReferenceRecord | 500000 | 8,208.37 us | 63.109 us | 52.699 us | 8,213.22 us | 0.24 | 0.01 | 57.7031 | 0.0313 | 2953.1250 | 390.6250 | - | 35206.88 KB | 1.24 |
| ConcurrentMultiDictionairy | ReferenceRecord | 500000 | 81,454.74 us | 989.458 us | 925.539 us | 81,272.40 us | 2.33 | 0.11 | 36.4286 | 10.0000 | 4142.8571 | 1714.2857 | 142.8571 | 46994.63 KB | 1.66 |
| SortByForReference | ReferenceRecord | 2500000 | 271,461.72 us | 5,343.932 us | 5,248.456 us | 271,384.60 us | 2.21 | 0.06 | - | - | - | - | - | 39062.79 KB | 0.26 |
| ArrayGroupBy | ReferenceRecord | 2500000 | 63,282.39 us | 1,254.560 us | 2,417.112 us | 63,486.42 us | 0.51 | 0.02 | - | - | 1888.8889 | 1777.7778 | 555.5556 | 85126.87 KB | 0.57 |
| PLINQDefault | ReferenceRecord | 2500000 | 122,988.68 us | 2,347.214 us | 3,052.041 us | 123,359.00 us | 1.00 | 0.00 | 15.0000 | 6.5000 | 6500.0000 | 5500.0000 | 500.0000 | 150479.22 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ReferenceRecord | 2500000 | 62,152.33 us | 2,031.523 us | 5,989.990 us | 61,050.96 us | 0.52 | 0.05 | 35.2000 | - | 3400.0000 | 3300.0000 | 400.0000 | 110613.75 KB | 0.74 |
| EachChunkSeparatelyThenCombineArrayBuilders | ReferenceRecord | 2500000 | 87,541.83 us | 1,726.963 us | 3,790.726 us | 86,664.39 us | 0.72 | 0.04 | 17.0000 | - | 4833.3333 | 4666.6667 | 833.3333 | 124249.04 KB | 0.83 |
| GroupByInPlaceViaSortAndParallelSegmentation | ReferenceRecord | 2500000 | 114,620.26 us | 2,281.932 us | 5,971.419 us | 115,332.95 us | 0.93 | 0.05 | 30.0000 | - | 19000.0000 | - | - | 244171.89 KB | 1.62 |
| SortThenCreateGroups | ReferenceRecord | 2500000 | 179,258.72 us | 3,505.852 us | 5,138.833 us | 179,141.83 us | 1.46 | 0.06 | - | - | 333.3333 | 333.3333 | 333.3333 | 29311.3 KB | 0.19 |
| GroupByInPlaceViaSort | ReferenceRecord | 2500000 | 118,517.69 us | 2,317.810 us | 3,094.210 us | 118,988.53 us | 0.96 | 0.04 | 22.0000 | - | 19000.0000 | - | - | 244167.15 KB | 1.62 |
| FullyOnParallelFor | ReferenceRecord | 2500000 | 79,939.56 us | 1,580.008 us | 3,963.931 us | 80,132.96 us | 0.64 | 0.04 | 45.1429 | 0.1429 | 6428.5714 | 5571.4286 | 285.7143 | 81774.01 KB | 0.54 |
| CountByThenAssign | ReferenceRecord | 2500000 | 44,223.60 us | 831.096 us | 736.745 us | 44,191.25 us | 0.36 | 0.01 | 56.4167 | 0.0833 | 13000.0000 | 250.0000 | 250.0000 | 175842.09 KB | 1.17 |
| ConcurrentMultiDictionairy | ReferenceRecord | 2500000 | 371,662.08 us | 3,782.205 us | 3,158.312 us | 372,758.60 us | 3.01 | 0.06 | 34.0000 | - | 18000.0000 | 7000.0000 | - | 235291.02 KB | 1.56 |
| SortByForReference | ReferenceRecord | 25000000 | 3,078,500.79 us | 32,580.386 us | 28,881.663 us | 3,079,307.80 us | 2.99 | 0.07 | - | - | - | - | - | 390625.54 KB | 0.31 |
| ArrayGroupBy | ReferenceRecord | 25000000 | 912,032.69 us | 15,826.505 us | 14,804.122 us | 918,280.90 us | 0.88 | 0.03 | - | - | 2000.0000 | 1000.0000 | 1000.0000 | 719670.33 KB | 0.58 |
| PLINQDefault | ReferenceRecord | 25000000 | 1,031,171.82 us | 20,039.431 us | 28,739.954 us | 1,024,426.80 us | 1.00 | 0.00 | 15.0000 | 10.0000 | 7000.0000 | 6000.0000 | 1000.0000 | 1243882.6 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ReferenceRecord | 25000000 | 499,331.39 us | 9,248.607 us | 9,083.369 us | 499,709.20 us | 0.48 | 0.01 | 48.0000 | - | 9000.0000 | 8000.0000 | 1000.0000 | 1278411.73 KB | 1.03 |
| EachChunkSeparatelyThenCombineArrayBuilders | ReferenceRecord | 25000000 | 646,197.00 us | 12,286.715 us | 14,149.400 us | 646,899.35 us | 0.63 | 0.02 | 32.0000 | - | 17000.0000 | 16000.0000 | 1000.0000 | 1380103.44 KB | 1.11 |
| GroupByInPlaceViaSortAndParallelSegmentation | ReferenceRecord | 25000000 | 1,126,593.89 us | 22,284.720 us | 23,844.401 us | 1,128,595.10 us | 1.09 | 0.04 | 39.0000 | - | 191000.0000 | - | - | 2441439.05 KB | 1.96 |
| SortThenCreateGroups | ReferenceRecord | 25000000 | 1,917,150.48 us | 26,685.519 us | 24,961.651 us | 1,916,236.60 us | 1.86 | 0.05 | - | - | - | - | - | 292983.4 KB | 0.24 |
| GroupByInPlaceViaSort | ReferenceRecord | 25000000 | 1,162,343.91 us | 22,973.376 us | 30,668.798 us | 1,168,378.10 us | 1.13 | 0.05 | 39.0000 | - | 191000.0000 | - | - | 2441434.67 KB | 1.96 |
| FullyOnParallelFor | ReferenceRecord | 25000000 | 742,134.70 us | 17,477.832 us | 50,706.359 us | 741,581.65 us | 0.71 | 0.09 | 74.5000 | - | 44500.0000 | 43500.0000 | 500.0000 | 736524.55 KB | 0.59 |
| CountByThenAssign | ReferenceRecord | 25000000 | 359,754.09 us | 7,029.645 us | 6,575.534 us | 357,133.10 us | 0.35 | 0.01 | 67.0000 | - | 128000.0000 | - | - | 1757864.48 KB | 1.41 |
| ConcurrentMultiDictionairy | ReferenceRecord | 25000000 | 4,100,085.11 us | 72,558.068 us | 67,870.861 us | 4,131,925.10 us | 3.97 | 0.15 | 596.0000 | 3.0000 | 175000.0000 | 69000.0000 | - | 2297156.24 KB | 1.85 |
| SortByForReference | ExpensiveProjection | 4000 | 209.58 us | 3.900 us | 3.648 us | 210.35 us | 0.51 | 0.01 | - | - | 4.8828 | 0.2441 | - | 62.55 KB | 0.06 |
| ArrayGroupBy | ExpensiveProjection | 4000 | 718.65 us | 10.591 us | 9.907 us | 719.66 us | 1.75 | 0.03 | - | - | 40.0391 | 6.8359 | - | 496.85 KB | 0.47 |
| PLINQDefault | ExpensiveProjection | 4000 | 411.47 us | 3.213 us | 2.683 us | 411.06 us | 1.00 | 0.00 | 15.0000 | 12.0317 | 92.7734 | 70.8008 | - | 1067.75 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ExpensiveProjection | 4000 | 261.70 us | 2.295 us | 2.147 us | 262.02 us | 0.64 | 0.01 | 16.7607 | 0.0073 | 63.9648 | 31.7383 | - | 714.26 KB | 0.67 |
| EachChunkSeparatelyThenCombineArrayBuilders | ExpensiveProjection | 4000 | 327.25 us | 2.123 us | 1.985 us | 327.42 us | 0.80 | 0.01 | 11.4805 | 0.0054 | 69.3359 | 33.6914 | - | 786.38 KB | 0.74 |
| GroupByInPlaceViaSortAndParallelSegmentation | ExpensiveProjection | 4000 | 399.82 us | 2.529 us | 2.112 us | 400.20 us | 0.97 | 0.01 | 19.6343 | 0.0083 | 63.9648 | 4.3945 | - | 783.44 KB | 0.73 |
| SortThenCreateGroups | ExpensiveProjection | 4000 | 1,465.41 us | 28.429 us | 33.843 us | 1,460.65 us | 3.57 | 0.09 | - | - | 64.4531 | 9.7656 | - | 801.5 KB | 0.75 |
| GroupByInPlaceViaSort | ExpensiveProjection | 4000 | 395.39 us | 2.609 us | 2.440 us | 395.23 us | 0.96 | 0.01 | 18.5459 | 0.0068 | 63.9648 | 4.3945 | - | 784.43 KB | 0.73 |
| FullyOnParallelFor | ExpensiveProjection | 4000 | 412.99 us | 5.410 us | 4.518 us | 413.02 us | 1.00 | 0.01 | 17.9897 | 0.0195 | 51.2695 | 50.7813 | 7.8125 | 623.23 KB | 0.58 |
| CountByThenAssign | ExpensiveProjection | 4000 | 370.23 us | 2.319 us | 2.056 us | 369.92 us | 0.90 | 0.01 | 38.0298 | 0.0146 | 85.9375 | 6.8359 | - | 1050.07 KB | 0.98 |
| ConcurrentMultiDictionairy | ExpensiveProjection | 4000 | 1,036.27 us | 20.167 us | 20.710 us | 1,037.36 us | 2.51 | 0.06 | 29.3477 | 6.8242 | 76.1719 | 74.2188 | 17.5781 | 927.89 KB | 0.87 |
| SortByForReference | ExpensiveProjection | 50000 | 4,296.81 us | 85.802 us | 84.269 us | 4,318.05 us | 1.46 | 0.03 | - | - | 242.1875 | 242.1875 | 242.1875 | 781.38 KB | 0.10 |
| ArrayGroupBy | ExpensiveProjection | 50000 | 9,397.98 us | 184.214 us | 197.107 us | 9,422.94 us | 3.19 | 0.08 | - | - | 515.6250 | 218.7500 | - | 6345.16 KB | 0.81 |
| PLINQDefault | ExpensiveProjection | 50000 | 2,944.30 us | 26.493 us | 24.781 us | 2,942.98 us | 1.00 | 0.00 | 15.0000 | 12.1367 | 695.3125 | 406.2500 | - | 7873.6 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ExpensiveProjection | 50000 | 2,661.04 us | 23.454 us | 21.939 us | 2,658.85 us | 0.90 | 0.01 | 20.5469 | 0.0156 | 628.9063 | 550.7813 | - | 7483.06 KB | 0.95 |
| EachChunkSeparatelyThenCombineArrayBuilders | ExpensiveProjection | 50000 | 2,778.97 us | 33.474 us | 31.312 us | 2,771.58 us | 0.94 | 0.01 | 15.6133 | 0.0039 | 644.5313 | 507.8125 | - | 7757.27 KB | 0.99 |
| GroupByInPlaceViaSortAndParallelSegmentation | ExpensiveProjection | 50000 | 4,577.04 us | 48.030 us | 44.927 us | 4,578.36 us | 1.55 | 0.02 | 23.8281 | 0.0078 | 765.6250 | 62.5000 | 62.5000 | 9562.8 KB | 1.21 |
| SortThenCreateGroups | ExpensiveProjection | 50000 | 19,899.75 us | 389.133 us | 605.833 us | 19,744.31 us | 6.83 | 0.27 | - | - | 843.7500 | 156.2500 | 156.2500 | 9913.38 KB | 1.26 |
| GroupByInPlaceViaSort | ExpensiveProjection | 50000 | 4,407.24 us | 86.404 us | 96.037 us | 4,373.51 us | 1.51 | 0.03 | 22.7891 | 0.0156 | 765.6250 | 62.5000 | 62.5000 | 9563.95 KB | 1.21 |
| FullyOnParallelFor | ExpensiveProjection | 50000 | 3,125.61 us | 47.855 us | 44.764 us | 3,130.66 us | 1.06 | 0.02 | 21.3672 | 0.1875 | 582.0313 | 210.9375 | 70.3125 | 6436.04 KB | 0.82 |
| CountByThenAssign | ExpensiveProjection | 50000 | 3,892.87 us | 23.798 us | 21.097 us | 3,886.07 us | 1.32 | 0.01 | 44.7148 | 0.0234 | 1058.5938 | 242.1875 | - | 12858.95 KB | 1.63 |
| ConcurrentMultiDictionairy | ExpensiveProjection | 50000 | 9,247.46 us | 143.676 us | 134.395 us | 9,249.83 us | 3.14 | 0.05 | 30.0625 | 0.7344 | 812.5000 | 218.7500 | 62.5000 | 9340.74 KB | 1.19 |
| SortByForReference | ExpensiveProjection | 100000 | 9,351.65 us | 178.866 us | 183.682 us | 9,396.19 us | 1.15 | 0.03 | - | - | 484.3750 | 484.3750 | 484.3750 | 1562.71 KB | 0.10 |
| ArrayGroupBy | ExpensiveProjection | 100000 | 18,742.63 us | 369.028 us | 439.301 us | 18,903.02 us | 2.31 | 0.11 | - | - | 1000.0000 | 687.5000 | 31.2500 | 12676.31 KB | 0.82 |
| PLINQDefault | ExpensiveProjection | 100000 | 8,146.42 us | 162.338 us | 242.980 us | 8,169.84 us | 1.00 | 0.00 | 15.0000 | 9.1875 | 1468.7500 | 984.3750 | 93.7500 | 15513.37 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ExpensiveProjection | 100000 | 9,231.62 us | 182.520 us | 396.782 us | 9,303.62 us | 1.12 | 0.06 | 19.1563 | 0.0313 | 1531.2500 | 1390.6250 | 515.6250 | 14721.35 KB | 0.95 |
| EachChunkSeparatelyThenCombineArrayBuilders | ExpensiveProjection | 100000 | 10,236.62 us | 202.357 us | 468.994 us | 10,303.18 us | 1.26 | 0.06 | 16.4063 | - | 1562.5000 | 1312.5000 | 515.6250 | 15230.92 KB | 0.98 |
| GroupByInPlaceViaSortAndParallelSegmentation | ExpensiveProjection | 100000 | 9,448.75 us | 179.984 us | 227.623 us | 9,423.73 us | 1.17 | 0.04 | 24.6563 | - | 1640.6250 | 140.6250 | 125.0000 | 19109 KB | 1.23 |
| SortThenCreateGroups | ExpensiveProjection | 100000 | 40,596.06 us | 715.348 us | 669.137 us | 40,506.05 us | 5.02 | 0.19 | - | - | 1769.2308 | 307.6923 | 307.6923 | 19818.69 KB | 1.28 |
| GroupByInPlaceViaSort | ExpensiveProjection | 100000 | 9,098.01 us | 177.573 us | 190.001 us | 9,145.09 us | 1.12 | 0.05 | 23.4688 | 0.0469 | 1640.6250 | 140.6250 | 125.0000 | 19110.02 KB | 1.23 |
| FullyOnParallelFor | ExpensiveProjection | 100000 | 6,682.14 us | 130.418 us | 133.929 us | 6,697.31 us | 0.83 | 0.03 | 24.1953 | 0.1406 | 1187.5000 | 390.6250 | 109.3750 | 12791.54 KB | 0.82 |
| CountByThenAssign | ExpensiveProjection | 100000 | 7,956.80 us | 40.123 us | 37.531 us | 7,955.15 us | 0.98 | 0.04 | 49.4375 | 0.0156 | 2125.0000 | 843.7500 | - | 25693.51 KB | 1.66 |
| ConcurrentMultiDictionairy | ExpensiveProjection | 100000 | 17,632.53 us | 287.872 us | 269.276 us | 17,608.94 us | 2.18 | 0.10 | 32.3125 | 0.9375 | 1687.5000 | 468.7500 | 125.0000 | 18725.83 KB | 1.21 |
| SortByForReference | ExpensiveProjection | 500000 | 48,938.36 us | 888.233 us | 830.853 us | 49,143.65 us | 1.06 | 0.03 | - | - | 272.7273 | 272.7273 | 272.7273 | 7812.67 KB | 0.10 |
| ArrayGroupBy | ExpensiveProjection | 500000 | 102,377.59 us | 2,027.727 us | 2,335.134 us | 101,585.95 us | 2.23 | 0.07 | - | - | 4800.0000 | 1600.0000 | 400.0000 | 63880.79 KB | 0.83 |
| PLINQDefault | ExpensiveProjection | 500000 | 46,096.60 us | 908.945 us | 1,213.415 us | 46,188.84 us | 1.00 | 0.00 | 15.0000 | 8.7273 | 6727.2727 | 2909.0909 | 636.3636 | 77161.86 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ExpensiveProjection | 500000 | 38,158.74 us | 625.565 us | 585.154 us | 38,180.30 us | 0.83 | 0.03 | 23.1429 | - | 6142.8571 | 2500.0000 | 857.1429 | 81031.78 KB | 1.05 |
| EachChunkSeparatelyThenCombineArrayBuilders | ExpensiveProjection | 500000 | 37,537.14 us | 745.756 us | 1,069.541 us | 37,673.69 us | 0.81 | 0.03 | 17.0000 | - | 6142.8571 | 2714.2857 | 785.7143 | 82197.17 KB | 1.07 |
| GroupByInPlaceViaSortAndParallelSegmentation | ExpensiveProjection | 500000 | 39,943.49 us | 431.278 us | 382.317 us | 39,943.13 us | 0.87 | 0.03 | 27.1538 | 0.0769 | 7923.0769 | 76.9231 | 76.9231 | 98566.37 KB | 1.28 |
| SortThenCreateGroups | ExpensiveProjection | 500000 | 233,864.16 us | 4,616.199 us | 4,939.281 us | 235,568.13 us | 5.08 | 0.18 | - | - | 8333.3333 | 333.3333 | 333.3333 | 105301.08 KB | 1.36 |
| GroupByInPlaceViaSort | ExpensiveProjection | 500000 | 40,189.55 us | 456.169 us | 380.922 us | 40,292.71 us | 0.87 | 0.03 | 24.0000 | 0.0769 | 7923.0769 | 76.9231 | 76.9231 | 98567.07 KB | 1.28 |
| FullyOnParallelFor | ExpensiveProjection | 500000 | 28,199.21 us | 319.681 us | 299.030 us | 28,183.58 us | 0.61 | 0.02 | 37.4063 | 0.7500 | 5437.5000 | 1562.5000 | 125.0000 | 65366.47 KB | 0.85 |
| CountByThenAssign | ExpensiveProjection | 500000 | 39,374.21 us | 368.556 us | 326.716 us | 39,355.13 us | 0.86 | 0.03 | 58.3077 | - | 10923.0769 | 384.6154 | 153.8462 | 134616.81 KB | 1.74 |
| ConcurrentMultiDictionairy | ExpensiveProjection | 500000 | 88,204.91 us | 824.345 us | 730.761 us | 88,126.89 us | 1.92 | 0.06 | 36.8333 | 2.1667 | 8000.0000 | 2166.6667 | 166.6667 | 96521.6 KB | 1.25 |
| SortByForReference | ExpensiveProjection | 2500000 | 268,646.70 us | 5,251.101 us | 7,361.311 us | 271,492.05 us | 1.48 | 0.04 | - | - | - | - | - | 39062.79 KB | 0.11 |
| ArrayGroupBy | ExpensiveProjection | 2500000 | 463,600.94 us | 9,006.896 us | 11,061.277 us | 466,292.80 us | 2.53 | 0.09 | - | - | 20000.0000 | 2000.0000 | - | 312221.98 KB | 0.85 |
| PLINQDefault | ExpensiveProjection | 2500000 | 183,193.55 us | 2,178.103 us | 1,818.815 us | 183,833.17 us | 1.00 | 0.00 | 15.0000 | 8.3333 | 24666.6667 | 5333.3333 | 333.3333 | 369248.8 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ExpensiveProjection | 2500000 | 129,569.38 us | 1,626.393 us | 1,441.755 us | 129,083.11 us | 0.71 | 0.01 | 36.2500 | - | 23750.0000 | 4750.0000 | 750.0000 | 385060.28 KB | 1.04 |
| EachChunkSeparatelyThenCombineArrayBuilders | ExpensiveProjection | 2500000 | 142,487.61 us | 2,837.183 us | 6,287.001 us | 139,881.98 us | 0.78 | 0.04 | 17.0000 | - | 24500.0000 | 5750.0000 | 750.0000 | 392931.23 KB | 1.06 |
| GroupByInPlaceViaSortAndParallelSegmentation | ExpensiveProjection | 2500000 | 195,729.38 us | 3,724.528 us | 3,657.984 us | 195,007.85 us | 1.07 | 0.02 | 30.0000 | - | 39000.0000 | - | - | 495873.06 KB | 1.34 |
| SortThenCreateGroups | ExpensiveProjection | 2500000 | 1,272,841.45 us | 6,592.290 us | 6,166.432 us | 1,275,250.00 us | 6.95 | 0.09 | - | - | 41000.0000 | - | - | 532726.87 KB | 1.44 |
| GroupByInPlaceViaSort | ExpensiveProjection | 2500000 | 198,657.16 us | 2,638.962 us | 2,339.371 us | 198,622.65 us | 1.09 | 0.02 | 30.0000 | - | 39500.0000 | - | - | 495873.55 KB | 1.34 |
| FullyOnParallelFor | ExpensiveProjection | 2500000 | 140,602.04 us | 3,300.819 us | 9,628.645 us | 138,843.39 us | 0.77 | 0.06 | 33.5000 | 1.5000 | 25000.0000 | 6000.0000 | 250.0000 | 318095.33 KB | 0.86 |
| CountByThenAssign | ExpensiveProjection | 2500000 | 189,873.64 us | 1,871.314 us | 1,562.632 us | 189,826.90 us | 1.04 | 0.01 | 53.0000 | - | 54000.0000 | - | - | 679228.72 KB | 1.84 |
| ConcurrentMultiDictionairy | ExpensiveProjection | 2500000 | 410,102.01 us | 4,027.915 us | 3,363.491 us | 410,733.40 us | 2.24 | 0.03 | 44.0000 | - | 38000.0000 | 10000.0000 | - | 487151.42 KB | 1.32 |
| SortByForReference | ExpensiveProjection | 25000000 | 2,997,750.83 us | 56,927.447 us | 58,460.297 us | 3,008,641.60 us | 1.57 | 0.08 | - | - | - | - | - | 390625.54 KB | 0.10 |
| ArrayGroupBy | ExpensiveProjection | 25000000 | 5,030,319.23 us | 92,134.717 us | 86,182.872 us | 5,052,374.30 us | 2.65 | 0.16 | - | - | 207000.0000 | 3000.0000 | 1000.0000 | 3374839.84 KB | 0.87 |
| PLINQDefault | ExpensiveProjection | 25000000 | 1,873,301.92 us | 37,215.978 us | 109,148.023 us | 1,797,427.90 us | 1.00 | 0.00 | 15.0000 | 6.0000 | 211000.0000 | 10000.0000 | 1000.0000 | 3866182.14 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ExpensiveProjection | 25000000 | 1,110,510.76 us | 22,164.254 us | 26,384.968 us | 1,103,372.20 us | 0.58 | 0.04 | 48.0000 | - | 210000.0000 | 7000.0000 | 1000.0000 | 3747248.24 KB | 0.97 |
| EachChunkSeparatelyThenCombineArrayBuilders | ExpensiveProjection | 25000000 | 1,155,910.47 us | 22,774.438 us | 21,303.224 us | 1,163,524.90 us | 0.61 | 0.03 | 32.0000 | - | 210000.0000 | 7000.0000 | 1000.0000 | 3861399.96 KB | 1.00 |
| GroupByInPlaceViaSortAndParallelSegmentation | ExpensiveProjection | 25000000 | 2,208,790.38 us | 43,675.815 us | 53,637.823 us | 2,219,717.05 us | 1.16 | 0.08 | 55.0000 | - | 398000.0000 | - | - | 4965574.49 KB | 1.28 |
| SortThenCreateGroups | ExpensiveProjection | 25000000 | 12,744,664.90 us | 201,867.060 us | 188,826.573 us | 12,785,177.20 us | 6.70 | 0.37 | - | - | 412000.0000 | 1000.0000 | - | 5341263.98 KB | 1.38 |
| GroupByInPlaceViaSort | ExpensiveProjection | 25000000 | 2,024,106.49 us | 40,403.654 us | 35,816.787 us | 2,021,519.00 us | 1.07 | 0.07 | 39.0000 | - | 398000.0000 | - | - | 4965572.68 KB | 1.28 |
| FullyOnParallelFor | ExpensiveProjection | 25000000 | 1,216,934.09 us | 29,873.159 us | 88,081.683 us | 1,234,085.95 us | 0.65 | 0.06 | 164.0000 | - | 247000.0000 | 58000.0000 | - | 3285411.7 KB | 0.85 |
| CountByThenAssign | ExpensiveProjection | 25000000 | 1,940,828.65 us | 19,745.722 us | 18,470.160 us | 1,941,092.50 us | 1.02 | 0.06 | 296.0000 | 1.0000 | 541000.0000 | - | - | 6806150.68 KB | 1.76 |
| ConcurrentMultiDictionairy | ExpensiveProjection | 25000000 | 4,473,405.91 us | 44,335.237 us | 41,471.208 us | 4,467,218.20 us | 2.35 | 0.13 | 374.0000 | 2.0000 | 354000.0000 | 35000.0000 | - | 4811046.5 KB | 1.24 |
| SortByForReference | ManyResultingBuckets | 4000 | 217.52 us | 4.342 us | 6.227 us | 218.85 us | 0.50 | 0.02 | - | - | 4.8828 | 0.2441 | - | 62.55 KB | 0.03 |
| ArrayGroupBy | ManyResultingBuckets | 4000 | 489.35 us | 9.744 us | 20.338 us | 486.20 us | 1.13 | 0.06 | - | - | 60.5469 | 30.2734 | 30.2734 | 757.57 KB | 0.41 |
| PLINQDefault | ManyResultingBuckets | 4000 | 437.56 us | 8.382 us | 8.968 us | 436.61 us | 1.00 | 0.00 | 15.0000 | 11.3765 | 156.7383 | 130.3711 | - | 1851.98 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ManyResultingBuckets | 4000 | 1,382.23 us | 27.582 us | 59.961 us | 1,396.25 us | 3.18 | 0.15 | 8.4004 | 0.0020 | 140.6250 | 115.2344 | 54.6875 | 1648.91 KB | 0.89 |
| EachChunkSeparatelyThenCombineArrayBuilders | ManyResultingBuckets | 4000 | 678.00 us | 12.545 us | 12.320 us | 680.64 us | 1.55 | 0.05 | 3.5557 | 0.0020 | 85.9375 | 84.9609 | 42.9688 | 1041.73 KB | 0.56 |
| GroupByInPlaceViaSortAndParallelSegmentation | ManyResultingBuckets | 4000 | 234.22 us | 1.678 us | 1.488 us | 234.73 us | 0.54 | 0.01 | 16.2087 | 0.0032 | 54.6875 | 12.9395 | - | 661.8 KB | 0.36 |
| SortThenCreateGroups | ManyResultingBuckets | 4000 | 254.54 us | 5.011 us | 10.679 us | 255.68 us | 0.59 | 0.02 | - | - | 21.4844 | 8.3008 | - | 265.92 KB | 0.14 |
| GroupByInPlaceViaSort | ManyResultingBuckets | 4000 | 235.95 us | 1.623 us | 1.518 us | 235.96 us | 0.54 | 0.01 | 11.7544 | 0.0012 | 50.5371 | 9.5215 | - | 620.14 KB | 0.33 |
| FullyOnParallelFor | ManyResultingBuckets | 4000 | 1,594.99 us | 34.203 us | 100.849 us | 1,589.11 us | 3.68 | 0.20 | 8.2324 | 0.0156 | 140.6250 | 111.3281 | 39.0625 | 1547.48 KB | 0.84 |
| CountByThenAssign | ManyResultingBuckets | 4000 | 1,181.89 us | 20.707 us | 19.370 us | 1,178.50 us | 2.71 | 0.08 | 32.4668 | 44.9688 | 119.1406 | 58.5938 | 29.2969 | 1247.57 KB | 0.67 |
| ConcurrentMultiDictionairy | ManyResultingBuckets | 4000 | 16,409.28 us | 626.472 us | 1,847.166 us | 16,462.58 us | 33.02 | 2.00 | 97.3125 | 383.0313 | 343.7500 | 328.1250 | 78.1250 | 3307.49 KB | 1.79 |
| SortByForReference | ManyResultingBuckets | 50000 | 4,323.66 us | 86.321 us | 123.799 us | 4,311.16 us | 0.44 | 0.02 | - | - | 242.1875 | 242.1875 | 242.1875 | 781.38 KB | 0.08 |
| ArrayGroupBy | ManyResultingBuckets | 50000 | 7,815.43 us | 149.187 us | 418.335 us | 7,826.07 us | 0.82 | 0.04 | - | - | 484.3750 | 484.3750 | 234.3750 | 4143.5 KB | 0.42 |
| PLINQDefault | ManyResultingBuckets | 50000 | 9,725.80 us | 189.298 us | 321.443 us | 9,700.45 us | 1.00 | 0.00 | 15.0000 | 9.4375 | 921.8750 | 718.7500 | 218.7500 | 9848.29 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ManyResultingBuckets | 50000 | 16,434.29 us | 339.831 us | 996.665 us | 16,202.25 us | 1.70 | 0.12 | 28.6563 | - | 1187.5000 | 1156.2500 | 531.2500 | 11996.65 KB | 1.22 |
| EachChunkSeparatelyThenCombineArrayBuilders | ManyResultingBuckets | 50000 | 19,402.20 us | 377.509 us | 541.411 us | 19,315.28 us | 1.99 | 0.07 | 8.0000 | 0.0313 | 1031.2500 | 1000.0000 | 343.7500 | 10293.62 KB | 1.05 |
| GroupByInPlaceViaSortAndParallelSegmentation | ManyResultingBuckets | 50000 | 4,578.72 us | 46.423 us | 43.424 us | 4,570.87 us | 0.46 | 0.01 | 19.3203 | - | 562.5000 | 210.9375 | 140.6250 | 6227.15 KB | 0.63 |
| SortThenCreateGroups | ManyResultingBuckets | 50000 | 4,481.36 us | 60.414 us | 56.511 us | 4,492.53 us | 0.45 | 0.01 | - | - | 367.1875 | 343.7500 | 312.5000 | 1869.03 KB | 0.19 |
| GroupByInPlaceViaSort | ManyResultingBuckets | 50000 | 4,569.64 us | 53.122 us | 49.691 us | 4,549.02 us | 0.46 | 0.01 | 14.3125 | 0.0078 | 546.8750 | 281.2500 | 218.7500 | 6176.58 KB | 0.63 |
| FullyOnParallelFor | ManyResultingBuckets | 50000 | 21,538.60 us | 415.879 us | 510.737 us | 21,537.74 us | 2.20 | 0.09 | 30.8438 | 1.5313 | 1437.5000 | 1312.5000 | 656.2500 | 12761.17 KB | 1.30 |
| CountByThenAssign | ManyResultingBuckets | 50000 | 12,311.47 us | 198.026 us | 185.234 us | 12,283.57 us | 1.25 | 0.03 | 44.1250 | 66.2656 | 796.8750 | 765.6250 | 390.6250 | 7730.05 KB | 0.78 |
| ConcurrentMultiDictionairy | ManyResultingBuckets | 50000 | 96,663.90 us | 2,319.988 us | 6,767.515 us | 95,831.44 us | 9.67 | 0.75 | 58.1429 | 525.7143 | 2428.5714 | 2285.7143 | 285.7143 | 27156.02 KB | 2.76 |
| SortByForReference | ManyResultingBuckets | 100000 | 9,272.27 us | 183.455 us | 280.155 us | 9,173.25 us | 0.51 | 0.03 | - | - | 484.3750 | 484.3750 | 484.3750 | 1562.71 KB | 0.11 |
| ArrayGroupBy | ManyResultingBuckets | 100000 | 14,464.41 us | 283.810 us | 278.739 us | 14,492.67 us | 0.80 | 0.04 | - | - | 906.2500 | 890.6250 | 500.0000 | 6873.69 KB | 0.48 |
| PLINQDefault | ManyResultingBuckets | 100000 | 17,878.36 us | 357.216 us | 827.903 us | 17,801.10 us | 1.00 | 0.00 | 15.0000 | 9.5313 | 1593.7500 | 1437.5000 | 343.7500 | 14417.79 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ManyResultingBuckets | 100000 | 35,416.29 us | 695.147 us | 1,235.623 us | 35,324.24 us | 1.97 | 0.13 | 30.8667 | - | 1933.3333 | 1866.6667 | 800.0000 | 18579.4 KB | 1.29 |
| EachChunkSeparatelyThenCombineArrayBuilders | ManyResultingBuckets | 100000 | 48,959.29 us | 957.973 us | 1,845.689 us | 48,963.96 us | 2.73 | 0.18 | 11.7273 | - | 2181.8182 | 2090.9091 | 1000.0000 | 18726.58 KB | 1.30 |
| GroupByInPlaceViaSortAndParallelSegmentation | ManyResultingBuckets | 100000 | 9,032.65 us | 26.017 us | 23.063 us | 9,031.60 us | 0.50 | 0.02 | 23.4219 | - | 1062.5000 | 484.3750 | 187.5000 | 11348.06 KB | 0.79 |
| SortThenCreateGroups | ManyResultingBuckets | 100000 | 9,015.27 us | 176.234 us | 258.321 us | 9,002.91 us | 0.50 | 0.03 | - | - | 390.6250 | 375.0000 | 328.1250 | 2574.3 KB | 0.18 |
| GroupByInPlaceViaSort | ManyResultingBuckets | 100000 | 9,473.95 us | 186.365 us | 311.375 us | 9,483.14 us | 0.52 | 0.03 | 19.4375 | 0.0469 | 1078.1250 | 640.6250 | 250.0000 | 11189.58 KB | 0.78 |
| FullyOnParallelFor | ManyResultingBuckets | 100000 | 39,650.04 us | 788.461 us | 1,714.049 us | 39,312.36 us | 2.22 | 0.15 | 33.3750 | 2.0000 | 2125.0000 | 2062.5000 | 937.5000 | 21134.92 KB | 1.47 |
| CountByThenAssign | ManyResultingBuckets | 100000 | 18,758.78 us | 359.455 us | 413.949 us | 18,790.91 us | 1.04 | 0.06 | 39.8750 | 79.5313 | 1312.5000 | 1062.5000 | 500.0000 | 12628.72 KB | 0.88 |
| ConcurrentMultiDictionairy | ManyResultingBuckets | 100000 | 154,551.84 us | 3,208.832 us | 9,461.315 us | 154,452.66 us | 8.61 | 0.62 | 37.7500 | 725.2500 | 3750.0000 | 3500.0000 | 250.0000 | 45524.88 KB | 3.16 |
| SortByForReference | ManyResultingBuckets | 500000 | 49,168.76 us | 966.751 us | 1,290.585 us | 49,477.68 us | 0.69 | 0.03 | - | - | 300.0000 | 300.0000 | 300.0000 | 7812.68 KB | 0.18 |
| ArrayGroupBy | ManyResultingBuckets | 500000 | 43,614.02 us | 786.422 us | 1,049.851 us | 43,715.61 us | 0.61 | 0.02 | - | - | 1818.1818 | 1727.2727 | 363.6364 | 20027.18 KB | 0.47 |
| PLINQDefault | ManyResultingBuckets | 500000 | 71,258.53 us | 1,403.369 us | 2,383.028 us | 71,046.03 us | 1.00 | 0.00 | 15.0000 | 7.2857 | 4714.2857 | 3714.2857 | 857.1429 | 42472.37 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ManyResultingBuckets | 500000 | 130,573.47 us | 2,602.268 us | 3,732.096 us | 130,647.11 us | 1.84 | 0.09 | 32.5000 | - | 4000.0000 | 3750.0000 | 1000.0000 | 59236.23 KB | 1.39 |
| EachChunkSeparatelyThenCombineArrayBuilders | ManyResultingBuckets | 500000 | 282,532.25 us | 5,571.107 us | 9,460.163 us | 281,784.37 us | 3.97 | 0.19 | 17.3333 | - | 5666.6667 | 5333.3333 | 1333.3333 | 74998.8 KB | 1.77 |
| GroupByInPlaceViaSortAndParallelSegmentation | ManyResultingBuckets | 500000 | 27,240.25 us | 414.664 us | 387.877 us | 27,148.64 us | 0.38 | 0.01 | 26.6563 | 0.0313 | 4093.7500 | 1125.0000 | 156.2500 | 50456.7 KB | 1.19 |
| SortThenCreateGroups | ManyResultingBuckets | 500000 | 46,405.25 us | 922.110 us | 986.647 us | 46,235.38 us | 0.65 | 0.02 | - | - | 363.6364 | 363.6364 | 363.6364 | 7301.88 KB | 0.17 |
| GroupByInPlaceViaSort | ManyResultingBuckets | 500000 | 27,400.85 us | 413.360 us | 386.658 us | 27,310.90 us | 0.38 | 0.01 | 22.2500 | - | 4062.5000 | 1125.0000 | 156.2500 | 50286.55 KB | 1.18 |
| FullyOnParallelFor | ManyResultingBuckets | 500000 | 152,930.40 us | 3,049.511 us | 6,432.453 us | 153,400.55 us | 2.14 | 0.12 | 40.0000 | 1.5000 | 3750.0000 | 3500.0000 | 500.0000 | 57234.91 KB | 1.35 |
| CountByThenAssign | ManyResultingBuckets | 500000 | 33,409.96 us | 651.836 us | 995.422 us | 33,180.81 us | 0.47 | 0.02 | 45.3750 | 71.6250 | 3437.5000 | 1687.5000 | 312.5000 | 40858.77 KB | 0.96 |
| ConcurrentMultiDictionairy | ManyResultingBuckets | 500000 | 422,734.35 us | 18,453.539 us | 54,410.677 us | 418,555.10 us | 5.63 | 0.52 | 40.0000 | 1300.0000 | 12000.0000 | 11000.0000 | 1000.0000 | 142425.91 KB | 3.35 |
| SortByForReference | ManyResultingBuckets | 2500000 | 276,605.11 us | 5,446.831 us | 7,082.419 us | 276,659.92 us | 1.33 | 0.04 | - | - | - | - | - | 39062.79 KB | 0.25 |
| ArrayGroupBy | ManyResultingBuckets | 2500000 | 187,510.02 us | 3,728.342 us | 5,804.580 us | 186,835.07 us | 0.91 | 0.03 | - | - | 7000.0000 | 6666.6667 | 666.6667 | 79757.21 KB | 0.50 |
| PLINQDefault | ManyResultingBuckets | 2500000 | 208,429.78 us | 3,766.635 us | 3,523.312 us | 207,556.75 us | 1.00 | 0.00 | 15.0000 | 7.5000 | 11500.0000 | 9000.0000 | 500.0000 | 158116.1 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ManyResultingBuckets | 2500000 | 418,457.62 us | 8,135.007 us | 9,042.038 us | 418,361.40 us | 2.00 | 0.06 | 49.0000 | - | 10000.0000 | 9000.0000 | 1000.0000 | 187254.15 KB | 1.18 |
| EachChunkSeparatelyThenCombineArrayBuilders | ManyResultingBuckets | 2500000 | 738,894.85 us | 14,535.547 us | 23,054.918 us | 734,851.90 us | 3.53 | 0.10 | 32.0000 | - | 13000.0000 | 12000.0000 | 1000.0000 | 229297.99 KB | 1.45 |
| GroupByInPlaceViaSortAndParallelSegmentation | ManyResultingBuckets | 2500000 | 111,870.45 us | 2,230.046 us | 5,796.187 us | 111,739.40 us | 0.54 | 0.03 | 28.0000 | - | 19000.0000 | - | - | 245769.18 KB | 1.55 |
| SortThenCreateGroups | ManyResultingBuckets | 2500000 | 260,211.30 us | 5,100.230 us | 7,633.784 us | 260,603.25 us | 1.25 | 0.05 | - | - | - | - | - | 30738.85 KB | 0.19 |
| GroupByInPlaceViaSort | ManyResultingBuckets | 2500000 | 117,797.81 us | 2,338.502 us | 5,033.873 us | 117,776.80 us | 0.57 | 0.02 | 23.0000 | - | 19000.0000 | - | - | 245595.61 KB | 1.55 |
| FullyOnParallelFor | ManyResultingBuckets | 2500000 | 407,246.46 us | 10,275.007 us | 28,980.838 us | 411,318.35 us | 1.79 | 0.09 | 36.0000 | - | 11000.0000 | 10000.0000 | 1000.0000 | 153837.35 KB | 0.97 |
| CountByThenAssign | ManyResultingBuckets | 2500000 | 87,655.64 us | 1,517.490 us | 1,419.461 us | 87,502.34 us | 0.42 | 0.01 | 64.1429 | 110.0000 | 15000.0000 | 3000.0000 | 285.7143 | 181477.1 KB | 1.15 |
| ConcurrentMultiDictionairy | ManyResultingBuckets | 2500000 | 1,783,034.74 us | 164,670.654 us | 485,535.140 us | 1,742,423.10 us | 5.54 | 0.53 | 858.0000 | 2418.0000 | 45000.0000 | 41000.0000 | 1000.0000 | 534701.16 KB | 3.38 |
| SortByForReference | ManyResultingBuckets | 25000000 | 3,165,567.18 us | 28,724.983 us | 26,869.367 us | 3,167,435.80 us | 3.20 | 0.06 | - | - | - | - | - | 390625.54 KB | 0.30 |
| ArrayGroupBy | ManyResultingBuckets | 25000000 | 2,342,519.71 us | 37,115.338 us | 34,717.710 us | 2,339,611.10 us | 2.36 | 0.05 | - | - | 63000.0000 | 62000.0000 | 1000.0000 | 762988.84 KB | 0.58 |
| PLINQDefault | ManyResultingBuckets | 25000000 | 991,286.74 us | 19,557.646 us | 20,084.263 us | 991,492.00 us | 1.00 | 0.00 | 15.0000 | 11.0000 | 82000.0000 | 58000.0000 | - | 1305578.7 KB | 1.00 |
| EachChunkSeparatelyThenMerge | ManyResultingBuckets | 25000000 | 2,211,705.93 us | 30,225.523 us | 28,272.973 us | 2,204,742.70 us | 2.23 | 0.05 | 54.0000 | - | 65000.0000 | 64000.0000 | 1000.0000 | 1421367.41 KB | 1.09 |
| EachChunkSeparatelyThenCombineArrayBuilders | ManyResultingBuckets | 25000000 | 2,853,982.79 us | 29,340.233 us | 27,444.872 us | 2,841,294.80 us | 2.88 | 0.06 | 32.0000 | - | 70000.0000 | 69000.0000 | 1000.0000 | 1561055.71 KB | 1.20 |
| GroupByInPlaceViaSortAndParallelSegmentation | ManyResultingBuckets | 25000000 | 1,143,657.21 us | 22,344.792 us | 29,054.541 us | 1,141,554.25 us | 1.15 | 0.04 | 39.0000 | - | 191000.0000 | - | - | 2443036.38 KB | 1.87 |
| SortThenCreateGroups | ManyResultingBuckets | 25000000 | 2,881,786.34 us | 49,664.039 us | 48,776.727 us | 2,876,170.25 us | 2.90 | 0.08 | - | - | - | - | - | 294410.97 KB | 0.23 |
| GroupByInPlaceViaSort | ManyResultingBuckets | 25000000 | 1,206,239.95 us | 23,248.514 us | 21,746.674 us | 1,208,476.70 us | 1.22 | 0.03 | 24.0000 | - | 191000.0000 | - | - | 2442861.04 KB | 1.87 |
| FullyOnParallelFor | ManyResultingBuckets | 25000000 | 5,703,665.16 us | 113,812.038 us | 283,431.469 us | 5,674,074.70 us | 6.00 | 0.28 | 411.0000 | 1.0000 | 115000.0000 | 114000.0000 | 1000.0000 | 1742138.93 KB | 1.33 |
| CountByThenAssign | ManyResultingBuckets | 25000000 | 676,135.88 us | 9,115.317 us | 8,080.491 us | 675,813.50 us | 0.68 | 0.02 | 128.0000 | 28.0000 | 148000.0000 | 20000.0000 | - | 1763502.91 KB | 1.35 |
| ConcurrentMultiDictionairy | ManyResultingBuckets | 25000000 | 9,851,121.86 us | 455,921.009 us | 1,344,293.383 us | 10,031,112.80 us | 8.22 | 0.58 | 1779.0000 | 4826.0000 | 253000.0000 | 166000.0000 | 1000.0000 | 3005849.7 KB | 2.30 |
| SortByForReference | Struc(...)ckets [23] | 4000 | 156.29 us | 3.105 us | 3.322 us | 157.47 us | 0.38 | 0.01 | - | - | 7.5684 | - | - | 93.8 KB | 0.04 |
| ArrayGroupBy | Struc(...)ckets [23] | 4000 | 675.91 us | 11.710 us | 13.940 us | 672.06 us | 1.65 | 0.04 | - | - | 88.8672 | 82.0313 | 31.2500 | 991.9 KB | 0.40 |
| PLINQDefault | Struc(...)ckets [23] | 4000 | 410.19 us | 7.980 us | 8.195 us | 407.14 us | 1.00 | 0.00 | 15.0000 | 11.3901 | 212.8906 | 186.0352 | - | 2500.14 KB | 1.00 |
| EachChunkSeparatelyThenMerge | Struc(...)ckets [23] | 4000 | 1,254.34 us | 21.726 us | 19.260 us | 1,248.43 us | 3.05 | 0.08 | 8.5996 | 0.0020 | 162.1094 | 125.0000 | 44.9219 | 1826.31 KB | 0.73 |
| EachChunkSeparatelyThenCombineArrayBuilders | Struc(...)ckets [23] | 4000 | 457.25 us | 9.089 us | 9.725 us | 457.98 us | 1.12 | 0.03 | 4.9487 | - | 86.9141 | 86.4258 | 43.4570 | 1120.3 KB | 0.45 |
| GroupByInPlaceViaSortAndParallelSegmentation | Struc(...)ckets [23] | 4000 | 229.99 us | 2.819 us | 2.499 us | 228.90 us | 0.56 | 0.01 | 16.0964 | 0.0017 | 57.6172 | 19.0430 | - | 690.55 KB | 0.28 |
| SortThenCreateGroups | Struc(...)ckets [23] | 4000 | 73.33 us | 0.790 us | 0.660 us | 73.47 us | 0.18 | 0.00 | - | - | 26.1230 | 11.4746 | - | 321.83 KB | 0.13 |
| GroupByInPlaceViaSort | Struc(...)ckets [23] | 4000 | 231.71 us | 0.991 us | 0.879 us | 231.67 us | 0.56 | 0.01 | 10.9568 | 0.0005 | 52.4902 | 13.4277 | - | 644.71 KB | 0.26 |
| FullyOnParallelFor | Struc(...)ckets [23] | 4000 | 1,513.22 us | 33.324 us | 98.256 us | 1,525.62 us | 3.71 | 0.27 | 7.4941 | 0.0137 | 164.0625 | 128.9063 | 37.1094 | 1713.68 KB | 0.69 |
| CountByThenAssign | Struc(...)ckets [23] | 4000 | 1,078.49 us | 7.886 us | 6.991 us | 1,078.74 us | 2.62 | 0.06 | 36.3711 | 43.7109 | 119.1406 | 58.5938 | 29.2969 | 1390.43 KB | 0.56 |
| ConcurrentMultiDictionairy | Struc(...)ckets [23] | 4000 | 11,889.37 us | 311.969 us | 919.849 us | 11,913.07 us | 27.57 | 2.51 | 64.6094 | 109.7188 | 484.3750 | 468.7500 | 156.2500 | 4078.77 KB | 1.63 |
| SortByForReference | Struc(...)ckets [23] | 50000 | 3,109.46 us | 18.931 us | 17.708 us | 3,111.95 us | 1.17 | 0.02 | - | - | 277.3438 | 277.3438 | 277.3438 | 1172.01 KB | 0.11 |
| ArrayGroupBy | Struc(...)ckets [23] | 50000 | 4,266.62 us | 85.103 us | 129.961 us | 4,249.71 us | 1.63 | 0.06 | - | - | 539.0625 | 531.2500 | 195.3125 | 4983.08 KB | 0.48 |
| PLINQDefault | Struc(...)ckets [23] | 50000 | 2,653.17 us | 49.701 us | 46.490 us | 2,640.54 us | 1.00 | 0.00 | 15.0000 | 10.7383 | 917.9688 | 886.7188 | - | 10466.46 KB | 1.00 |
| EachChunkSeparatelyThenMerge | Struc(...)ckets [23] | 50000 | 9,624.02 us | 192.339 us | 438.053 us | 9,587.71 us | 3.65 | 0.17 | 16.7656 | 0.0156 | 1046.8750 | 1000.0000 | 359.3750 | 10520.5 KB | 1.01 |
| EachChunkSeparatelyThenCombineArrayBuilders | Struc(...)ckets [23] | 50000 | 9,877.60 us | 196.551 us | 410.275 us | 9,784.19 us | 3.72 | 0.14 | 6.3750 | 0.0156 | 859.3750 | 640.6250 | 296.8750 | 10446.13 KB | 1.00 |
| GroupByInPlaceViaSortAndParallelSegmentation | Struc(...)ckets [23] | 50000 | 2,567.17 us | 51.235 us | 82.735 us | 2,550.64 us | 0.97 | 0.03 | 18.4961 | 0.0117 | 507.8125 | 140.6250 | 58.5938 | 5705.4 KB | 0.55 |
| SortThenCreateGroups | Struc(...)ckets [23] | 50000 | 1,632.65 us | 13.373 us | 12.509 us | 1,635.67 us | 0.62 | 0.01 | - | - | 349.6094 | 349.6094 | 302.7344 | 1693.75 KB | 0.16 |
| GroupByInPlaceViaSort | Struc(...)ckets [23] | 50000 | 4,193.62 us | 82.143 us | 94.596 us | 4,243.07 us | 1.58 | 0.05 | 12.7734 | - | 515.6250 | 250.0000 | 93.7500 | 5612.86 KB | 0.54 |
| FullyOnParallelFor | Struc(...)ckets [23] | 50000 | 13,944.12 us | 276.231 us | 576.597 us | 13,986.74 us | 5.31 | 0.33 | 20.9844 | 0.8438 | 1328.1250 | 1281.2500 | 625.0000 | 11560.07 KB | 1.10 |
| CountByThenAssign | Struc(...)ckets [23] | 50000 | 6,561.43 us | 17.190 us | 14.355 us | 6,565.14 us | 2.47 | 0.05 | 39.9531 | 45.3984 | 703.1250 | 695.3125 | 281.2500 | 6847.47 KB | 0.65 |
| ConcurrentMultiDictionairy | Struc(...)ckets [23] | 50000 | 77,000.25 us | 1,724.476 us | 5,084.655 us | 77,224.95 us | 28.39 | 1.57 | 39.2857 | 211.8571 | 3428.5714 | 3285.7143 | 428.5714 | 36069.12 KB | 3.45 |
| SortByForReference | Struc(...)ckets [23] | 100000 | 6,431.78 us | 29.665 us | 27.749 us | 6,432.44 us | 0.74 | 0.03 | - | - | 367.1875 | 367.1875 | 367.1875 | 2343.91 KB | 0.13 |
| ArrayGroupBy | Struc(...)ckets [23] | 100000 | 6,988.28 us | 56.575 us | 50.152 us | 6,967.86 us | 0.80 | 0.03 | - | - | 843.7500 | 656.2500 | 218.7500 | 8498.57 KB | 0.48 |
| PLINQDefault | Struc(...)ckets [23] | 100000 | 8,684.29 us | 172.613 us | 472.524 us | 8,630.29 us | 1.00 | 0.00 | 15.0000 | 9.0000 | 1734.3750 | 1671.8750 | 500.0000 | 17754.99 KB | 1.00 |
| EachChunkSeparatelyThenMerge | Struc(...)ckets [23] | 100000 | 25,460.40 us | 479.951 us | 827.892 us | 25,444.15 us | 2.95 | 0.18 | 24.9063 | 0.0313 | 1843.7500 | 1812.5000 | 843.7500 | 17585.29 KB | 0.99 |
| EachChunkSeparatelyThenCombineArrayBuilders | Struc(...)ckets [23] | 100000 | 32,694.30 us | 647.650 us | 1,008.313 us | 32,895.88 us | 3.77 | 0.20 | 10.6875 | - | 2187.5000 | 2125.0000 | 937.5000 | 20578.68 KB | 1.16 |
| GroupByInPlaceViaSortAndParallelSegmentation | Struc(...)ckets [23] | 100000 | 4,779.55 us | 91.305 us | 85.406 us | 4,776.56 us | 0.55 | 0.02 | 18.5625 | 0.0078 | 945.3125 | 179.6875 | 109.3750 | 10587.86 KB | 0.60 |
| SortThenCreateGroups | Struc(...)ckets [23] | 100000 | 3,373.09 us | 14.102 us | 11.776 us | 3,373.15 us | 0.39 | 0.01 | - | - | 539.0625 | 535.1563 | 492.1875 | 2670.28 KB | 0.15 |
| GroupByInPlaceViaSort | Struc(...)ckets [23] | 100000 | 6,444.61 us | 111.157 us | 98.538 us | 6,441.16 us | 0.74 | 0.03 | 15.4531 | 0.0078 | 968.7500 | 445.3125 | 156.2500 | 10494.53 KB | 0.59 |
| FullyOnParallelFor | Struc(...)ckets [23] | 100000 | 26,639.94 us | 522.746 us | 873.391 us | 26,593.72 us | 3.09 | 0.22 | 30.0938 | 1.5938 | 1937.5000 | 1906.2500 | 781.2500 | 19502.12 KB | 1.10 |
| CountByThenAssign | Struc(...)ckets [23] | 100000 | 9,294.65 us | 185.779 us | 375.283 us | 9,230.81 us | 1.08 | 0.08 | 42.0469 | 42.6719 | 1078.1250 | 718.7500 | 265.6250 | 10778 KB | 0.61 |
| ConcurrentMultiDictionairy | Struc(...)ckets [23] | 100000 | 136,063.52 us | 3,838.374 us | 11,317.532 us | 135,351.11 us | 15.63 | 1.53 | 47.6000 | 453.8000 | 6200.0000 | 6000.0000 | 600.0000 | 67586.95 KB | 3.81 |
| SortByForReference | Struc(...)ckets [23] | 500000 | 36,344.64 us | 625.011 us | 584.636 us | 36,475.25 us | 0.79 | 0.04 | - | - | 428.5714 | 428.5714 | 428.5714 | 11718.96 KB | 0.20 |
| ArrayGroupBy | Struc(...)ckets [23] | 500000 | 22,406.67 us | 348.241 us | 325.744 us | 22,476.13 us | 0.49 | 0.02 | - | - | 3125.0000 | 2281.2500 | 750.0000 | 30217.48 KB | 0.50 |
| PLINQDefault | Struc(...)ckets [23] | 500000 | 45,761.50 us | 898.218 us | 1,619.672 us | 45,924.98 us | 1.00 | 0.00 | 15.0000 | 7.9091 | 6545.4545 | 5545.4545 | 1181.8182 | 59950.22 KB | 1.00 |
| EachChunkSeparatelyThenMerge | Struc(...)ckets [23] | 500000 | 63,097.27 us | 1,258.202 us | 2,102.174 us | 63,033.33 us | 1.38 | 0.07 | 33.7500 | - | 4375.0000 | 3875.0000 | 1000.0000 | 60759.25 KB | 1.01 |
| EachChunkSeparatelyThenCombineArrayBuilders | Struc(...)ckets [23] | 500000 | 132,454.40 us | 2,494.793 us | 2,969.873 us | 132,863.70 us | 2.91 | 0.15 | 16.5000 | - | 6750.0000 | 6500.0000 | 1750.0000 | 80958.35 KB | 1.35 |
| GroupByInPlaceViaSortAndParallelSegmentation | Struc(...)ckets [23] | 500000 | 20,897.87 us | 252.922 us | 236.583 us | 20,986.01 us | 0.45 | 0.02 | 26.5000 | 0.0313 | 4000.0000 | 218.7500 | 125.0000 | 49651.57 KB | 0.83 |
| SortThenCreateGroups | Struc(...)ckets [23] | 500000 | 18,473.10 us | 191.415 us | 169.684 us | 18,495.69 us | 0.40 | 0.02 | - | - | 406.2500 | 375.0000 | 375.0000 | 10482.76 KB | 0.17 |
| GroupByInPlaceViaSort | Struc(...)ckets [23] | 500000 | 22,400.15 us | 430.361 us | 402.559 us | 22,384.83 us | 0.49 | 0.02 | 23.0313 | 0.0313 | 4343.7500 | 1437.5000 | 468.7500 | 49558.29 KB | 0.83 |
| FullyOnParallelFor | Struc(...)ckets [23] | 500000 | 79,957.80 us | 1,590.709 us | 4,077.596 us | 79,951.57 us | 1.75 | 0.11 | 39.0000 | - | 4571.4286 | 3571.4286 | 714.2857 | 61357.11 KB | 1.02 |
| CountByThenAssign | Struc(...)ckets [23] | 500000 | 26,694.15 us | 524.825 us | 1,107.033 us | 26,743.25 us | 0.58 | 0.03 | 43.9688 | 33.4063 | 4281.2500 | 2406.2500 | 968.7500 | 42034.04 KB | 0.70 |
| ConcurrentMultiDictionairy | Struc(...)ckets [23] | 500000 | 279,369.03 us | 8,419.923 us | 24,826.332 us | 283,448.23 us | 5.97 | 0.65 | 52.3333 | 781.6667 | 14000.0000 | 12666.6667 | 666.6667 | 160546.59 KB | 2.68 |
| SortByForReference | Struc(...)ckets [23] | 2500000 | 212,070.21 us | 4,227.567 us | 5,191.832 us | 212,199.82 us | 2.19 | 0.09 | - | - | 333.3333 | 333.3333 | 333.3333 | 58594.07 KB | 0.26 |
| ArrayGroupBy | Struc(...)ckets [23] | 2500000 | 99,900.66 us | 1,975.617 us | 4,808.925 us | 98,102.46 us | 1.05 | 0.05 | - | - | 12600.0000 | 12400.0000 | 2800.0000 | 121943.95 KB | 0.54 |
| PLINQDefault | Struc(...)ckets [23] | 2500000 | 96,452.38 us | 1,900.241 us | 2,601.072 us | 96,535.35 us | 1.00 | 0.00 | 15.0000 | 6.6000 | 15800.0000 | 12000.0000 | 1600.0000 | 226854.78 KB | 1.00 |
| EachChunkSeparatelyThenMerge | Struc(...)ckets [23] | 2500000 | 164,435.38 us | 3,247.591 us | 5,856.077 us | 163,981.30 us | 1.71 | 0.09 | 38.3333 | - | 11333.3333 | 11000.0000 | 1000.0000 | 193272.64 KB | 0.85 |
| EachChunkSeparatelyThenCombineArrayBuilders | Struc(...)ckets [23] | 2500000 | 293,462.81 us | 5,784.351 us | 9,174.593 us | 292,745.85 us | 3.06 | 0.12 | 24.5000 | - | 15500.0000 | 15000.0000 | 2000.0000 | 238103.21 KB | 1.05 |
| GroupByInPlaceViaSortAndParallelSegmentation | Struc(...)ckets [23] | 2500000 | 102,626.75 us | 2,046.145 us | 3,062.573 us | 101,703.34 us | 1.07 | 0.04 | 29.8000 | - | 19200.0000 | - | - | 244963.74 KB | 1.08 |
| SortThenCreateGroups | Struc(...)ckets [23] | 2500000 | 95,254.72 us | 1,862.656 us | 1,912.811 us | 95,446.03 us | 0.98 | 0.03 | - | - | 500.0000 | 500.0000 | 500.0000 | 49545.37 KB | 0.22 |
| GroupByInPlaceViaSort | Struc(...)ckets [23] | 2500000 | 100,262.22 us | 1,984.975 us | 3,528.291 us | 99,991.40 us | 1.04 | 0.05 | 22.5000 | - | 19000.0000 | 500.0000 | - | 244870.18 KB | 1.08 |
| FullyOnParallelFor | Struc(...)ckets [23] | 2500000 | 250,829.26 us | 11,616.978 us | 34,252.922 us | 253,591.08 us | 2.20 | 0.20 | 54.5000 | 0.5000 | 17500.0000 | 17000.0000 | 1000.0000 | 217332.7 KB | 0.96 |
| CountByThenAssign | Struc(...)ckets [23] | 2500000 | 67,866.82 us | 1,351.960 us | 1,556.919 us | 67,480.14 us | 0.70 | 0.02 | 61.6250 | 86.2500 | 17500.0000 | 5375.0000 | 1500.0000 | 198296.68 KB | 0.87 |
| ConcurrentMultiDictionairy | Struc(...)ckets [23] | 2500000 | 432,869.62 us | 21,616.617 us | 63,737.084 us | 431,566.92 us | 4.35 | 0.73 | 38.0000 | 894.5000 | 28000.0000 | 19500.0000 | 1500.0000 | 318895.2 KB | 1.41 |
| SortByForReference | Struc(...)ckets [23] | 25000000 | 2,369,664.14 us | 26,242.656 us | 23,263.431 us | 2,366,456.75 us | 2.87 | 0.09 | - | - | - | - | - | 585938.04 KB | 0.24 |
| ArrayGroupBy | Struc(...)ckets [23] | 25000000 | 903,651.83 us | 17,913.943 us | 25,112.846 us | 900,781.10 us | 1.11 | 0.05 | - | - | 147000.0000 | 146000.0000 | 11000.0000 | 1674451.19 KB | 0.68 |
| PLINQDefault | Struc(...)ckets [23] | 25000000 | 814,748.32 us | 16,166.763 us | 30,758.948 us | 823,721.00 us | 1.00 | 0.00 | 15.0000 | 9.0000 | 170000.0000 | 128000.0000 | 5000.0000 | 2471250.45 KB | 1.00 |
| EachChunkSeparatelyThenMerge | Struc(...)ckets [23] | 25000000 | 1,045,369.19 us | 18,408.851 us | 17,219.650 us | 1,047,006.70 us | 1.27 | 0.05 | 45.0000 | - | 161000.0000 | 160000.0000 | 2000.0000 | 2026434.9 KB | 0.82 |
| EachChunkSeparatelyThenCombineArrayBuilders | Struc(...)ckets [23] | 25000000 | 1,398,055.40 us | 22,937.628 us | 21,455.872 us | 1,397,674.50 us | 1.70 | 0.06 | 32.0000 | - | 172000.0000 | 171000.0000 | 3000.0000 | 2222751.55 KB | 0.90 |
| GroupByInPlaceViaSortAndParallelSegmentation | Struc(...)ckets [23] | 25000000 | 996,791.05 us | 18,276.950 us | 17,096.270 us | 1,000,643.10 us | 1.21 | 0.04 | 53.0000 | - | 191000.0000 | - | - | 2442232.13 KB | 0.99 |
| SortThenCreateGroups | Struc(...)ckets [23] | 25000000 | 991,035.05 us | 14,724.958 us | 13,773.735 us | 992,973.70 us | 1.21 | 0.04 | - | - | - | - | - | 488998.74 KB | 0.20 |
| GroupByInPlaceViaSort | Struc(...)ckets [23] | 25000000 | 999,074.43 us | 18,784.500 us | 20,099.205 us | 997,078.05 us | 1.22 | 0.06 | 24.0000 | - | 191000.0000 | - | - | 2442136.58 KB | 0.99 |
| FullyOnParallelFor | Struc(...)ckets [23] | 25000000 | 2,155,403.82 us | 205,291.639 us | 605,307.028 us | 2,130,117.25 us | 2.24 | 0.66 | 704.0000 | 13.0000 | 179000.0000 | 178000.0000 | 1000.0000 | 2503313.13 KB | 1.01 |
| CountByThenAssign | Struc(...)ckets [23] | 25000000 | 462,063.22 us | 9,112.563 us | 14,972.203 us | 462,565.00 us | 0.57 | 0.03 | 111.0000 | 49.0000 | 169000.0000 | 41000.0000 | 3000.0000 | 1956288.58 KB | 0.79 |
| ConcurrentMultiDictionairy | Struc(...)ckets [23] | 25000000 | 3,232,467.80 us | 138,328.676 us | 407,865.223 us | 3,309,435.15 us | 3.58 | 0.48 | 500.0000 | 2237.0000 | 270000.0000 | 168000.0000 | 2000.0000 | 3093646.78 KB | 1.25 |