Skip to content

ToArray

Georg Haaser edited this page Oct 20, 2019 · 2 revisions

creates an array of tuples from a random Map of size N.
Note that the table contains the overall times for creating the array, but the plot shows the average time per element.

Chart

BenchmarkDotNet=v0.11.5, OS=Windows 10.0.17763.805 (1809/October2018Update/Redstone5)
AMD Ryzen Threadripper 2950X, 1 CPU, 32 logical and 16 physical cores
.NET Core SDK=3.0.100
  [Host]     : .NET Core 2.1.13 (CoreCLR 4.6.28008.01, CoreFX 4.6.28008.01), 64bit RyuJIT DEBUG
  Job-PHBEOK : .NET Core 2.1.13 (CoreCLR 4.6.28008.01, CoreFX 4.6.28008.01), 64bit RyuJIT

MaxIterationCount=100  
Method N Mean Error StdDev Median Gen 0 Gen 1 Gen 2 Allocated
HashMapOkasaki_toArray 10 215.3 ns 4.447 ns 13.11 ns 214.9 ns 0.4678 - - 368 B
ImTools_toArray 10 769.5 ns 16.100 ns 47.22 ns 763.4 ns 1.0166 - - 800 B
FSharpMap_toArray 10 360.1 ns 7.757 ns 22.75 ns 360.7 ns 0.8440 - - 664 B
ImmutableDictionary_toArray 10 1,799.5 ns 35.851 ns 78.69 ns 1,808.6 ns 0.1316 - - 104 B
HashMapOkasaki_toArray 20 497.9 ns 12.524 ns 36.93 ns 492.5 ns 0.8745 - - 688 B
ImTools_toArray 20 1,336.7 ns 31.638 ns 93.29 ns 1,334.5 ns 1.7891 - - 1408 B
FSharpMap_toArray 20 644.8 ns 14.853 ns 43.09 ns 646.4 ns 1.6575 - - 1304 B
ImmutableDictionary_toArray 20 3,425.2 ns 68.215 ns 197.90 ns 3,413.8 ns 0.2327 - - 184 B
HashMapOkasaki_toArray 30 906.5 ns 24.933 ns 73.13 ns 900.9 ns 1.2798 - - 1008 B
ImTools_toArray 30 1,721.9 ns 34.337 ns 88.64 ns 1,711.1 ns 2.1954 - - 1728 B
FSharpMap_toArray 30 1,018.3 ns 25.899 ns 75.96 ns 1,018.5 ns 2.4700 - - 1944 B
ImmutableDictionary_toArray 30 5,191.2 ns 121.419 ns 356.10 ns 5,137.5 ns 0.3281 - - 264 B
HashMapOkasaki_toArray 40 1,010.8 ns 25.065 ns 73.91 ns 1,011.2 ns 1.6880 - - 1328 B
ImTools_toArray 40 2,398.1 ns 56.563 ns 166.78 ns 2,400.5 ns 3.2921 - - 2592 B
FSharpMap_toArray 40 1,331.2 ns 27.566 ns 80.41 ns 1,327.7 ns 3.2845 - - 2584 B
ImmutableDictionary_toArray 40 6,489.9 ns 130.442 ns 382.56 ns 6,508.5 ns 0.4349 - - 344 B
HashMapOkasaki_toArray 50 1,370.3 ns 29.514 ns 87.02 ns 1,374.1 ns 2.0943 - - 1648 B
ImTools_toArray 50 2,748.4 ns 57.692 ns 170.11 ns 2,745.1 ns 3.7003 - - 2912 B
FSharpMap_toArray 50 1,707.5 ns 34.074 ns 86.11 ns 1,710.9 ns 4.0970 - - 3224 B
ImmutableDictionary_toArray 50 8,143.4 ns 160.546 ns 372.09 ns 8,181.1 ns 0.5341 - - 424 B
HashMapOkasaki_toArray 100 2,707.4 ns 56.775 ns 167.40 ns 2,710.3 ns 4.1275 - - 3248 B
ImTools_toArray 100 5,227.7 ns 113.209 ns 332.02 ns 5,219.7 ns 7.0724 - - 5568 B
FSharpMap_toArray 100 3,551.8 ns 100.761 ns 297.10 ns 3,525.8 ns 8.1635 - - 6424 B
ImmutableDictionary_toArray 100 15,752.3 ns 373.627 ns 1,101.65 ns 15,972.1 ns 1.0376 - - 824 B
HashMapOkasaki_toArray 200 5,619.3 ns 111.926 ns 308.28 ns 5,662.7 ns 8.1940 - - 6448 B
ImTools_toArray 200 10,860.4 ns 246.136 ns 721.88 ns 10,787.4 ns 13.7787 - - 10848 B
FSharpMap_toArray 200 7,035.2 ns 150.366 ns 441.00 ns 7,070.9 ns 16.3040 - - 12824 B
ImmutableDictionary_toArray 200 32,896.0 ns 900.198 ns 2,654.25 ns 32,656.1 ns 2.0142 - - 1624 B
HashMapOkasaki_toArray 300 8,755.5 ns 213.521 ns 629.57 ns 8,791.7 ns 12.2528 - - 9648 B
ImTools_toArray 300 16,359.0 ns 410.507 ns 1,203.95 ns 16,191.4 ns 23.0713 - - 18176 B
FSharpMap_toArray 300 10,698.8 ns 257.867 ns 760.33 ns 10,708.5 ns 24.3835 - - 19224 B
ImmutableDictionary_toArray 300 50,403.6 ns 1,033.029 ns 3,045.91 ns 50,223.2 ns 3.0518 - - 2424 B
HashMapOkasaki_toArray 400 11,454.3 ns 231.093 ns 681.38 ns 11,490.0 ns 16.3116 - - 12848 B
ImTools_toArray 400 21,614.7 ns 431.566 ns 1,238.24 ns 21,699.3 ns 27.0691 - - 21376 B
FSharpMap_toArray 400 14,790.0 ns 295.096 ns 812.78 ns 14,792.6 ns 32.5623 - - 25624 B
ImmutableDictionary_toArray 400 65,188.0 ns 1,546.954 ns 4,438.50 ns 65,252.5 ns 4.0283 - - 3224 B
HashMapOkasaki_toArray 500 15,663.0 ns 450.639 ns 1,328.72 ns 15,471.9 ns 20.3857 - - 16048 B
ImTools_toArray 500 28,018.5 ns 558.080 ns 1,489.63 ns 27,988.0 ns 31.2195 - - 24576 B
FSharpMap_toArray 500 19,662.5 ns 436.300 ns 1,272.71 ns 19,604.1 ns 40.6799 - - 32024 B
ImmutableDictionary_toArray 500 79,797.2 ns 1,805.947 ns 5,268.03 ns 79,377.6 ns 5.0049 - - 4024 B
HashMapOkasaki_toArray 1000 33,717.9 ns 762.241 ns 2,247.48 ns 33,668.9 ns 30.6396 5.0049 - 32048 B
ImTools_toArray 1000 57,245.3 ns 1,365.017 ns 4,024.78 ns 57,176.9 ns 46.1426 7.2021 - 48800 B
FSharpMap_toArray 1000 49,441.3 ns 979.387 ns 2,580.10 ns 49,731.8 ns 57.3120 8.2397 - 64024 B
ImmutableDictionary_toArray 1000 161,577.5 ns 3,778.406 ns 11,140.72 ns 162,114.5 ns 10.0098 - - 8024 B
HashMapOkasaki_toArray 2000 80,893.8 ns 1,246.524 ns 1,166.00 ns 80,569.8 ns 31.0059 7.8125 - 64048 B
ImTools_toArray 2000 137,701.4 ns 2,710.708 ns 5,892.86 ns 138,920.9 ns 47.3633 11.7188 - 97216 B
FSharpMap_toArray 2000 107,521.7 ns 2,854.432 ns 8,281.22 ns 110,758.2 ns 62.9883 16.2354 - 128024 B
ImmutableDictionary_toArray 2000 319,521.4 ns 7,085.448 ns 20,891.60 ns 316,260.3 ns 19.5313 - - 16024 B
HashMapOkasaki_toArray 3000 119,443.5 ns 3,303.247 ns 9,739.70 ns 123,830.3 ns 31.7383 10.4980 - 96048 B
ImTools_toArray 3000 230,261.9 ns 2,659.876 ns 2,488.05 ns 230,431.9 ns 51.0254 16.8457 - 162016 B
FSharpMap_toArray 3000 165,534.2 ns 3,304.790 ns 8,878.10 ns 168,507.0 ns 66.1621 19.7754 - 192024 B
ImmutableDictionary_toArray 3000 483,065.4 ns 9,678.048 ns 23,740.42 ns 479,925.5 ns 30.2734 - - 24024 B
HashMapOkasaki_toArray 4000 169,112.9 ns 3,362.141 ns 9,032.17 ns 172,568.7 ns 31.0059 11.7188 - 128048 B
ImTools_toArray 4000 292,570.2 ns 8,144.634 ns 23,886.80 ns 303,282.2 ns 49.3164 18.0664 - 194016 B
FSharpMap_toArray 4000 225,569.1 ns 4,458.323 ns 10,936.34 ns 229,376.0 ns 65.6738 23.6816 - 256024 B
ImmutableDictionary_toArray 4000 648,533.9 ns 16,642.399 ns 49,070.49 ns 650,388.3 ns 39.0625 - - 32024 B
HashMapOkasaki_toArray 5000 209,878.6 ns 4,390.079 ns 12,875.34 ns 214,870.7 ns 33.6914 14.4043 - 160048 B
ImTools_toArray 5000 385,951.6 ns 10,765.735 ns 31,743.01 ns 402,854.9 ns 61.0352 30.2734 - 291584 B
FSharpMap_toArray 5000 275,193.0 ns 5,905.948 ns 17,321.12 ns 279,492.3 ns 69.8242 27.3438 - 320024 B
ImmutableDictionary_toArray 5000 831,277.2 ns 16,560.295 ns 47,780.24 ns 827,470.8 ns 49.8047 - - 40024 B
HashMapOkasaki_toArray 10000 344,647.7 ns 7,819.611 ns 23,056.30 ns 343,504.2 ns 51.2695 25.3906 - 320048 B
ImTools_toArray 10000 1,308,279.8 ns 25,981.574 ns 50,057.67 ns 1,325,322.9 ns 105.4688 70.3125 33.2031 582712 B
FSharpMap_toArray 10000 524,369.2 ns 10,465.626 ns 29,689.24 ns 528,508.4 ns 106.4453 52.7344 - 640024 B
ImmutableDictionary_toArray 10000 1,663,181.3 ns 32,733.663 ns 75,865.24 ns 1,655,300.5 ns 56.6406 9.7656 - 80024 B
HashMapOkasaki_toArray 20000 1,739,616.4 ns 34,758.581 ns 53,080.02 ns 1,757,050.0 ns 97.6563 62.5000 27.3438 640048 B
ImTools_toArray 20000 2,970,791.1 ns 58,119.389 ns 107,728.01 ns 2,998,962.1 ns 160.1563 125.0000 62.5000 1164898 B
FSharpMap_toArray 20000 3,931,899.9 ns 76,813.074 ns 85,377.53 ns 3,910,911.7 ns 210.9375 89.8438 35.1563 1280024 B
ImmutableDictionary_toArray 20000 3,724,335.2 ns 73,786.726 ns 165,034.59 ns 3,738,852.0 ns 19.5313 19.5313 19.5313 160024 B
HashMapOkasaki_toArray 30000 2,938,071.7 ns 58,111.809 ns 69,177.97 ns 2,948,229.1 ns 144.5313 78.1250 31.2500 960048 B
ImTools_toArray 30000 5,185,129.8 ns 102,865.698 ns 230,073.87 ns 5,207,785.2 ns 250.0000 210.9375 109.3750 1485029 B
FSharpMap_toArray 30000 6,647,836.3 ns 131,910.357 ns 266,465.43 ns 6,687,575.4 ns 320.3125 132.8125 46.8750 1920024 B
ImmutableDictionary_toArray 30000 5,405,304.3 ns 107,140.188 ns 274,641.26 ns 5,369,325.8 ns 15.6250 15.6250 15.6250 240024 B

Clone this wiki locally