-
Notifications
You must be signed in to change notification settings - Fork 0
OfArray
Georg Haaser edited this page Oct 20, 2019
·
2 revisions
creates a Map of size N using an array of random tuples.
Note that the table contains the overall times for creating the Map, but the plot shows the average time per element.
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 | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|
| HashMapOkasaki_ofArray | 10 | 333.7 ns | 8.820 ns | 26.01 ns | 0.8950 | - | - | 704 B |
| ImTools_ofArray | 10 | 1,146.3 ns | 27.287 ns | 80.03 ns | 3.3760 | - | - | 2656 B |
| FSharpMap_ofArray | 10 | 1,400.5 ns | 29.122 ns | 84.95 ns | 1.6670 | - | - | 1312 B |
| HAMT_ofArray | 10 | 629.3 ns | 13.340 ns | 38.91 ns | 1.1587 | - | - | 912 B |
| FSharpX_ofArray | 10 | 5,712.4 ns | 120.890 ns | 356.45 ns | 6.5536 | - | - | 5160 B |
| ImmutableDictionary_ofArray | 10 | 4,811.3 ns | 108.943 ns | 316.06 ns | 2.9984 | - | - | 2360 B |
| HashMapOkasaki_ofArray | 20 | 746.0 ns | 17.064 ns | 50.04 ns | 1.8101 | - | - | 1424 B |
| ImTools_ofArray | 20 | 3,086.0 ns | 61.112 ns | 157.75 ns | 8.2779 | - | - | 6512 B |
| FSharpMap_ofArray | 20 | 4,582.8 ns | 113.125 ns | 333.55 ns | 4.9286 | - | - | 3880 B |
| HAMT_ofArray | 20 | 2,264.3 ns | 44.920 ns | 114.34 ns | 3.1815 | - | - | 2504 B |
| FSharpX_ofArray | 20 | 10,380.2 ns | 206.618 ns | 514.55 ns | 11.3373 | - | - | 8920 B |
| ImmutableDictionary_ofArray | 20 | 12,783.8 ns | 265.416 ns | 770.02 ns | 7.3395 | - | - | 5784 B |
| HashMapOkasaki_ofArray | 30 | 1,247.4 ns | 24.752 ns | 51.12 ns | 2.7256 | - | - | 2144 B |
| ImTools_ofArray | 30 | 5,231.9 ns | 111.492 ns | 326.99 ns | 13.6642 | - | - | 10752 B |
| FSharpMap_ofArray | 30 | 8,473.1 ns | 194.740 ns | 574.20 ns | 8.7433 | - | - | 6880 B |
| HAMT_ofArray | 30 | 4,077.9 ns | 92.447 ns | 272.58 ns | 5.3787 | - | - | 4232 B |
| FSharpX_ofArray | 30 | 15,119.6 ns | 390.339 ns | 1,150.92 ns | 16.1133 | - | - | 12680 B |
| ImmutableDictionary_ofArray | 30 | 19,747.7 ns | 451.255 ns | 1,330.54 ns | 12.1155 | - | - | 9544 B |
| HashMapOkasaki_ofArray | 40 | 1,725.8 ns | 34.539 ns | 93.97 ns | 3.6411 | - | - | 2864 B |
| ImTools_ofArray | 40 | 7,509.3 ns | 149.349 ns | 257.62 ns | 19.4244 | - | - | 15280 B |
| FSharpMap_ofArray | 40 | 12,271.7 ns | 242.008 ns | 551.18 ns | 12.8632 | - | - | 10120 B |
| HAMT_ofArray | 40 | 5,724.8 ns | 113.581 ns | 320.36 ns | 7.6981 | - | - | 6056 B |
| FSharpX_ofArray | 40 | 18,315.2 ns | 421.387 ns | 1,229.21 ns | 18.2800 | - | - | 14392 B |
| ImmutableDictionary_ofArray | 40 | 28,009.0 ns | 557.802 ns | 1,325.68 ns | 17.4561 | - | - | 13752 B |
| HashMapOkasaki_ofArray | 50 | 2,244.3 ns | 50.648 ns | 147.74 ns | 4.5547 | - | - | 3584 B |
| ImTools_ofArray | 50 | 10,102.5 ns | 232.411 ns | 681.62 ns | 25.4211 | - | - | 20000 B |
| FSharpMap_ofArray | 50 | 17,150.7 ns | 401.301 ns | 1,183.25 ns | 17.2729 | - | - | 13600 B |
| HAMT_ofArray | 50 | 7,805.9 ns | 219.603 ns | 647.51 ns | 10.1471 | - | - | 7992 B |
| FSharpX_ofArray | 50 | 21,349.2 ns | 438.550 ns | 1,286.19 ns | 19.8059 | - | - | 15592 B |
| ImmutableDictionary_ofArray | 50 | 37,565.0 ns | 797.769 ns | 2,327.13 ns | 22.9492 | - | - | 18072 B |
| HashMapOkasaki_ofArray | 100 | 4,930.2 ns | 109.551 ns | 321.30 ns | 9.1324 | - | - | 7184 B |
| ImTools_ofArray | 100 | 24,345.2 ns | 545.505 ns | 1,608.43 ns | 57.4951 | - | - | 45232 B |
| FSharpMap_ofArray | 100 | 42,131.2 ns | 952.162 ns | 2,792.53 ns | 41.3818 | - | - | 32584 B |
| HAMT_ofArray | 100 | 20,160.2 ns | 451.072 ns | 1,315.80 ns | 25.5127 | - | - | 20072 B |
| FSharpX_ofArray | 100 | 41,087.2 ns | 820.229 ns | 2,418.47 ns | 33.6304 | - | - | 26456 B |
| ImmutableDictionary_ofArray | 100 | 86,810.6 ns | 1,723.929 ns | 5,028.78 ns | 52.9785 | - | - | 41688 B |
| HashMapOkasaki_ofArray | 200 | 10,873.3 ns | 215.538 ns | 600.83 ns | 18.2800 | - | - | 14384 B |
| ImTools_ofArray | 200 | 61,086.0 ns | 1,494.010 ns | 4,334.40 ns | 127.8076 | - | - | 100592 B |
| FSharpMap_ofArray | 200 | 101,546.3 ns | 2,157.470 ns | 6,327.48 ns | 95.9473 | - | - | 75496 B |
| HAMT_ofArray | 200 | 50,142.1 ns | 1,021.904 ns | 3,013.11 ns | 59.6924 | - | - | 46952 B |
| FSharpX_ofArray | 200 | 80,562.8 ns | 1,911.544 ns | 5,606.23 ns | 60.4248 | - | - | 47608 B |
| ImmutableDictionary_ofArray | 200 | 198,655.1 ns | 3,990.493 ns | 11,640.46 ns | 120.1172 | - | - | 94520 B |
| HashMapOkasaki_ofArray | 300 | 17,837.7 ns | 420.350 ns | 1,232.82 ns | 27.4353 | - | - | 21584 B |
| ImTools_ofArray | 300 | 101,437.7 ns | 2,089.930 ns | 6,162.20 ns | 195.4346 | 4.3945 | - | 159408 B |
| FSharpMap_ofArray | 300 | 169,758.2 ns | 3,588.321 ns | 10,523.93 ns | 154.7852 | - | - | 121864 B |
| HAMT_ofArray | 300 | 82,670.4 ns | 1,652.396 ns | 4,846.19 ns | 95.7031 | - | - | 75304 B |
| FSharpX_ofArray | 300 | 255,884.4 ns | 5,775.499 ns | 17,029.19 ns | 72.7539 | 18.5547 | - | 153368 B |
| ImmutableDictionary_ofArray | 300 | 343,556.3 ns | 7,082.098 ns | 20,770.57 ns | 192.3828 | - | - | 151384 B |
| HashMapOkasaki_ofArray | 400 | 26,879.9 ns | 533.966 ns | 1,090.75 ns | 30.9448 | 3.4180 | - | 28784 B |
| ImTools_ofArray | 400 | 163,176.7 ns | 3,262.247 ns | 9,618.81 ns | 215.5762 | 28.5645 | - | 221008 B |
| FSharpMap_ofArray | 400 | 243,612.0 ns | 5,430.580 ns | 15,926.95 ns | 217.2852 | - | - | 171064 B |
| HAMT_ofArray | 400 | 115,436.4 ns | 2,305.676 ns | 6,074.07 ns | 133.3008 | - | - | 104872 B |
| FSharpX_ofArray | 400 | 340,061.7 ns | 6,706.970 ns | 16,702.68 ns | 71.7773 | 22.9492 | - | 190968 B |
| ImmutableDictionary_ofArray | 400 | 492,502.6 ns | 11,320.574 ns | 32,843.04 ns | 268.5547 | - | - | 211384 B |
| HashMapOkasaki_ofArray | 500 | 36,922.7 ns | 903.338 ns | 2,649.33 ns | 34.3628 | 4.5166 | - | 35984 B |
| ImTools_ofArray | 500 | 220,924.4 ns | 4,357.109 ns | 9,745.30 ns | 228.2715 | 38.5742 | - | 282608 B |
| FSharpMap_ofArray | 500 | 318,386.3 ns | 7,075.395 ns | 20,861.96 ns | 279.7852 | - | - | 220264 B |
| HAMT_ofArray | 500 | 150,166.2 ns | 3,726.442 ns | 10,929.01 ns | 172.3633 | - | - | 135688 B |
| FSharpX_ofArray | 500 | 321,930.6 ns | 7,064.183 ns | 20,718.03 ns | 77.6367 | 25.8789 | - | 228568 B |
| ImmutableDictionary_ofArray | 500 | 627,549.8 ns | 14,372.162 ns | 42,376.64 ns | 298.8281 | 25.3906 | - | 271384 B |
| HashMapOkasaki_ofArray | 1000 | 89,144.5 ns | 1,795.874 ns | 5,295.18 ns | 35.4004 | 8.6670 | - | 71984 B |
| ImTools_ofArray | 1000 | 498,151.6 ns | 9,884.557 ns | 21,903.50 ns | 263.6719 | 70.3125 | - | 613936 B |
| FSharpMap_ofArray | 1000 | 774,388.3 ns | 15,390.068 ns | 41,869.81 ns | 459.9609 | 73.2422 | - | 489544 B |
| HAMT_ofArray | 1000 | 394,965.1 ns | 9,228.560 ns | 27,065.77 ns | 333.9844 | 31.2500 | - | 315432 B |
| FSharpX_ofArray | 1000 | 746,940.9 ns | 14,577.038 ns | 23,539.20 ns | 82.0313 | 38.0859 | - | 416568 B |
| ImmutableDictionary_ofArray | 1000 | 1,339,096.7 ns | 33,978.509 ns | 99,653.09 ns | 396.4844 | 80.0781 | - | 598712 B |
| HashMapOkasaki_ofArray | 2000 | 194,810.6 ns | 3,844.780 ns | 9,358.73 ns | 34.6680 | 11.7188 | - | 143984 B |
| ImTools_ofArray | 2000 | 1,183,959.0 ns | 23,507.162 ns | 55,867.26 ns | 291.0156 | 109.3750 | - | 1324688 B |
| FSharpMap_ofArray | 2000 | 1,919,464.3 ns | 49,738.271 ns | 145,088.87 ns | 523.4375 | 125.0000 | - | 1076248 B |
| HAMT_ofArray | 2000 | 859,645.1 ns | 16,999.248 ns | 36,592.67 ns | 563.4766 | 94.7266 | - | 694952 B |
| FSharpX_ofArray | 2000 | 1,112,836.7 ns | 23,296.590 ns | 68,690.52 ns | 95.7031 | 46.8750 | - | 542712 B |
| ImmutableDictionary_ofArray | 2000 | 2,972,018.3 ns | 58,996.677 ns | 170,218.90 ns | 441.4063 | 132.8125 | - | 1309368 B |
| HashMapOkasaki_ofArray | 3000 | 277,587.5 ns | 6,694.348 ns | 19,738.44 ns | 41.5039 | 17.5781 | - | 215984 B |
| ImTools_ofArray | 3000 | 1,747,469.4 ns | 34,681.574 ns | 88,902.13 ns | 345.7031 | 166.0156 | - | 2082288 B |
| FSharpMap_ofArray | 3000 | 3,025,822.5 ns | 60,028.363 ns | 125,301.55 ns | 601.5625 | 175.7813 | 3.9063 | 1709800 B |
| HAMT_ofArray | 3000 | 1,375,307.1 ns | 28,244.092 ns | 83,278.34 ns | 728.5156 | 142.5781 | - | 1090088 B |
| FSharpX_ofArray | 3000 | 1,583,869.9 ns | 37,088.818 ns | 108,189.82 ns | 128.9063 | 64.4531 | - | 807416 B |
| ImmutableDictionary_ofArray | 3000 | 4,822,769.2 ns | 120,620.957 ns | 346,084.14 ns | 492.1875 | 164.0625 | - | 2074680 B |
| HashMapOkasaki_ofArray | 4000 | 360,940.9 ns | 7,186.647 ns | 20,152.13 ns | 47.3633 | 23.4375 | - | 287984 B |
| ImTools_ofArray | 4000 | 2,333,039.3 ns | 54,414.147 ns | 158,728.62 ns | 457.0313 | 226.5625 | - | 2842288 B |
| FSharpMap_ofArray | 4000 | 3,963,280.1 ns | 78,880.027 ns | 226,321.58 ns | 640.6250 | 199.2188 | 23.4375 | 2345800 B |
| HAMT_ofArray | 4000 | 1,823,275.1 ns | 36,195.044 ns | 98,471.29 ns | 832.0313 | 197.2656 | - | 1500840 B |
| FSharpX_ofArray | 4000 | 2,071,441.3 ns | 48,387.557 ns | 140,381.08 ns | 152.3438 | 74.2188 | - | 938360 B |
| ImmutableDictionary_ofArray | 4000 | 6,478,469.5 ns | 129,250.249 ns | 362,431.56 ns | 554.6875 | 210.9375 | - | 2842680 B |
| HashMapOkasaki_ofArray | 5000 | 450,552.2 ns | 8,982.841 ns | 25,188.85 ns | 57.6172 | 28.8086 | - | 359984 B |
| ImTools_ofArray | 5000 | 3,328,499.5 ns | 67,105.899 ns | 197,863.26 ns | 585.9375 | 289.0625 | 11.7188 | 3645584 B |
| FSharpMap_ofArray | 5000 | 5,038,893.7 ns | 99,921.833 ns | 289,891.36 ns | 781.2500 | 210.9375 | 39.0625 | 3025048 B |
| HAMT_ofArray | 5000 | 2,539,096.8 ns | 50,616.541 ns | 139,412.65 ns | 761.7188 | 218.7500 | - | 1960232 B |
| FSharpX_ofArray | 5000 | 2,801,292.7 ns | 60,512.065 ns | 178,421.19 ns | 199.2188 | 97.6563 | - | 1253624 B |
| ImmutableDictionary_ofArray | 5000 | 8,395,117.5 ns | 213,379.072 ns | 629,153.01 ns | 656.2500 | 296.8750 | - | 3661304 B |
| HashMapOkasaki_ofArray | 10000 | 1,078,729.8 ns | 24,869.717 ns | 72,546.13 ns | 115.2344 | 56.6406 | - | 719984 B |
| ImTools_ofArray | 10000 | 8,539,195.1 ns | 169,775.051 ns | 379,726.23 ns | 1250.0000 | 234.3750 | 93.7500 | 7772272 B |
| FSharpMap_ofArray | 10000 | 10,243,045.2 ns | 209,786.913 ns | 611,958.27 ns | 5031.2500 | 125.0000 | 46.8750 | 6531688 B |
| HAMT_ofArray | 10000 | 5,704,253.6 ns | 113,931.711 ns | 309,959.62 ns | 726.5625 | 351.5625 | - | 4313256 B |
| FSharpX_ofArray | 10000 | 17,789,596.3 ns | 354,502.914 ns | 862,909.09 ns | 843.7500 | 312.5000 | 125.0000 | 5053944 B |
| ImmutableDictionary_ofArray | 10000 | 18,190,463.3 ns | 503,518.300 ns | 1,476,732.01 ns | 1343.7500 | 218.7500 | 62.5000 | 7882552 B |
| HashMapOkasaki_ofArray | 20000 | 2,972,760.1 ns | 59,133.676 ns | 147,263.37 ns | 230.4688 | 113.2813 | - | 1439984 B |
| ImTools_ofArray | 20000 | 18,602,421.6 ns | 378,595.698 ns | 1,116,297.96 ns | 2781.2500 | 406.2500 | 125.0000 | 16505746 B |
| FSharpMap_ofArray | 20000 | 23,204,276.6 ns | 463,373.095 ns | 1,236,836.59 ns | 11468.7500 | 187.5000 | 62.5000 | 14025112 B |
| HAMT_ofArray | 20000 | 12,344,536.7 ns | 246,424.962 ns | 707,039.41 ns | 1531.2500 | 515.6250 | 93.7500 | 9203880 B |
| FSharpX_ofArray | 20000 | 35,627,159.3 ns | 710,974.478 ns | 1,909,986.77 ns | 1571.4286 | 642.8571 | 214.2857 | 8813945 B |
| ImmutableDictionary_ofArray | 20000 | 39,179,131.1 ns | 1,040,646.354 ns | 3,035,614.26 ns | 2928.5714 | 357.1429 | 71.4286 | 16885051 B |
| HashMapOkasaki_ofArray | 30000 | 5,491,244.2 ns | 109,338.611 ns | 130,159.84 ns | 343.7500 | 171.8750 | - | 2159984 B |
| ImTools_ofArray | 30000 | 30,500,397.2 ns | 601,724.763 ns | 1,115,335.43 ns | 4281.2500 | 593.7500 | 187.5000 | 25545746 B |
| FSharpMap_ofArray | 30000 | 35,638,855.4 ns | 901,944.596 ns | 2,659,403.99 ns | 19533.3333 | 466.6667 | 133.3333 | 21825115 B |
| HAMT_ofArray | 30000 | 18,937,362.0 ns | 385,918.288 ns | 1,131,831.53 ns | 2343.7500 | 625.0000 | 125.0000 | 14294056 B |
| FSharpX_ofArray | 30000 | 56,430,942.0 ns | 1,124,883.822 ns | 2,246,514.54 ns | 2200.0000 | 800.0000 | 200.0000 | 12573950 B |
| ImmutableDictionary_ofArray | 30000 | 59,746,984.0 ns | 1,291,458.163 ns | 3,767,244.08 ns | 4444.4444 | 333.3333 | - | 26245048 B |
