Skip to content

Instantly share code, notes, and snippets.

@Voultapher
Last active November 26, 2019 14:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Voultapher/f2d73073a51885a7d8b64252aca97174 to your computer and use it in GitHub Desktop.
Save Voultapher/f2d73073a51885a7d8b64252aca97174 to your computer and use it in GitHub Desktop.
Linux 5.3.13-arch1-1
Benchmark code https://github.com/Voultapher/hashmap-compare 197ef4d9b2b27741a67eb96ff1828e7a83529594
clang version 9.0.0
Run on (4 X 3000 MHz CPU s)
CPU Caches:
L1 Data 32K (x2)
L1 Instruction 32K (x2)
L2 Unified 256K (x2)
L3 Unified 4096K (x1)
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
----------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------
libc++ unordered_map
fill_only/10 403 ns 402 ns 1759727
fill_only/100 6050 ns 6044 ns 109457
fill_only/1000 56094 ns 56040 ns 12163
fill_only/10000 549848 ns 549238 ns 1166
fill_only/100000 5459958 ns 5447849 ns 110
lookup_one/10 411 ns 411 ns 1703746
lookup_one/100 4450 ns 4433 ns 129694
lookup_one/1000 57416 ns 57362 ns 11818
lookup_one/10000 559313 ns 558678 ns 1183
lookup_one/100000 5571881 ns 5558206 ns 110
lookup_all/10 444 ns 444 ns 1575468
lookup_all/100 4487 ns 4482 ns 155927
lookup_all/1000 61182 ns 61036 ns 11521
lookup_all/10000 586860 ns 585929 ns 968
lookup_all/100000 5825211 ns 5809679 ns 105
lookup_missing/10 1241 ns 1238 ns 582031
lookup_missing/100 10386 ns 10377 ns 67243
lookup_missing/1000 120675 ns 120569 ns 5757
lookup_missing/10000 1368331 ns 1366872 ns 492
lookup_missing/100000 16071619 ns 16040257 ns 43
lookup_random/10 1101 ns 1101 ns 632776
lookup_random/100 10412 ns 10403 ns 66215
lookup_random/1000 111835 ns 111735 ns 6230
lookup_random/10000 1325756 ns 1324313 ns 510
lookup_random/100000 15467393 ns 15435255 ns 45
insert_random/10 1731 ns 1730 ns 401717
insert_random/100 16187 ns 16174 ns 43437
insert_random/1000 162708 ns 162561 ns 4274
insert_random/10000 1980571 ns 1978391 ns 351
insert_random/100000 20565519 ns 20517837 ns 34
traversal/10 447 ns 445 ns 1642315
traversal/100 4433 ns 4429 ns 154010
traversal/1000 60446 ns 60380 ns 11466
traversal/10000 641782 ns 639722 ns 1090
traversal/100000 5965019 ns 5950990 ns 100
copy_element_wise/10 951 ns 950 ns 716235
copy_element_wise/100 13216 ns 13182 ns 54585
copy_element_wise/1000 129283 ns 129142 ns 5152
copy_element_wise/10000 1242114 ns 1240655 ns 543
copy_element_wise/100000 12892446 ns 12857369 ns 52
random_gen/10 620 ns 619 ns 1094283
random_gen/100 5614 ns 5610 ns 124649
random_gen/1000 49464 ns 49424 ns 13868
random_gen/10000 681885 ns 680249 ns 1037
random_gen/100000 5750280 ns 5745641 ns 121
libstdc++ unordered_map
fill_only/10 619 ns 618 ns 1119902
fill_only/100 6907 ns 6902 ns 98950
fill_only/1000 80642 ns 80574 ns 8516
fill_only/10000 781878 ns 781014 ns 859
fill_only/100000 7736928 ns 7717306 ns 84
lookup_one/10 635 ns 635 ns 1095188
lookup_one/100 6941 ns 6935 ns 99678
lookup_one/1000 81985 ns 81916 ns 8365
lookup_one/10000 787585 ns 786761 ns 866
lookup_one/100000 7785358 ns 7767006 ns 84
lookup_all/10 743 ns 742 ns 962021
lookup_all/100 7954 ns 7946 ns 86947
lookup_all/1000 96232 ns 95781 ns 7412
lookup_all/10000 913025 ns 911658 ns 753
lookup_all/100000 8974011 ns 8949875 ns 74
lookup_missing/10 1060 ns 1058 ns 657625
lookup_missing/100 10581 ns 10524 ns 67440
lookup_missing/1000 121073 ns 120874 ns 5763
lookup_missing/10000 1280288 ns 1277818 ns 545
lookup_missing/100000 14257090 ns 14225275 ns 49
lookup_random/10 966 ns 965 ns 724963
lookup_random/100 10195 ns 10182 ns 67901
lookup_random/1000 113356 ns 113233 ns 6075
lookup_random/10000 1193703 ns 1191969 ns 600
lookup_random/100000 12650162 ns 12619318 ns 53
insert_random/10 1397 ns 1396 ns 502452
insert_random/100 14527 ns 14502 ns 49469
insert_random/1000 154157 ns 153938 ns 4538
insert_random/10000 1550096 ns 1548454 ns 444
insert_random/100000 17931482 ns 17898130 ns 39
traversal/10 640 ns 640 ns 1062755
traversal/100 7265 ns 7259 ns 95452
traversal/1000 84598 ns 84510 ns 8172
traversal/10000 821167 ns 820146 ns 825
traversal/100000 9709189 ns 9658059 ns 70
copy_element_wise/10 1313 ns 1312 ns 529189
copy_element_wise/100 16871 ns 16854 ns 40935
copy_element_wise/1000 165188 ns 165031 ns 4202
copy_element_wise/10000 1603868 ns 1602047 ns 429
copy_element_wise/100000 16122787 ns 16079162 ns 43
random_gen/10 224 ns 224 ns 3013010
random_gen/100 2189 ns 2187 ns 319185
random_gen/1000 21782 ns 21764 ns 32253
random_gen/10000 216948 ns 216761 ns 3211
random_gen/100000 2174806 ns 2172885 ns 323
Abseil flat_hash_map
fill_only/10 426 ns 425 ns 1637688
fill_only/100 2579 ns 2576 ns 271269
fill_only/1000 29493 ns 29465 ns 23621
fill_only/10000 379249 ns 378263 ns 2005
fill_only/100000 3959431 ns 3952859 ns 176
lookup_one/10 441 ns 441 ns 1591405
lookup_one/100 2602 ns 2600 ns 266957
lookup_one/1000 29620 ns 29594 ns 23553
lookup_one/10000 283671 ns 283349 ns 2466
lookup_one/100000 3963573 ns 3956944 ns 176
lookup_all/10 482 ns 482 ns 1431104
lookup_all/100 3068 ns 3065 ns 231258
lookup_all/1000 34278 ns 34246 ns 19151
lookup_all/10000 331666 ns 331307 ns 2127
lookup_all/100000 4856923 ns 4849790 ns 129
lookup_missing/10 1114 ns 1113 ns 628212
lookup_missing/100 8971 ns 8962 ns 76994
lookup_missing/1000 86900 ns 86812 ns 8091
lookup_missing/10000 1034019 ns 1032713 ns 665
lookup_missing/100000 11272091 ns 11256560 ns 59
lookup_random/10 1198 ns 1195 ns 602847
lookup_random/100 9224 ns 9216 ns 75087
lookup_random/1000 92178 ns 92012 ns 7718
lookup_random/10000 1071448 ns 1070205 ns 590
lookup_random/100000 11543024 ns 11528087 ns 57
insert_random/10 1785 ns 1783 ns 392776
insert_random/100 14833 ns 14820 ns 47056
insert_random/1000 138664 ns 138529 ns 5026
insert_random/10000 1743575 ns 1741501 ns 400
insert_random/100000 19712548 ns 19656902 ns 39
traversal/10 458 ns 458 ns 1528603
traversal/100 2793 ns 2791 ns 250190
traversal/1000 33905 ns 33877 ns 20621
traversal/10000 343926 ns 343552 ns 2040
traversal/100000 4264404 ns 4257321 ns 139
copy_element_wise/10 892 ns 891 ns 786179
copy_element_wise/100 5823 ns 5815 ns 116331
copy_element_wise/1000 69504 ns 69442 ns 10013
copy_element_wise/10000 872362 ns 871347 ns 778
copy_element_wise/100000 9917438 ns 9901864 ns 66
random_gen/10 634 ns 633 ns 1082725
random_gen/100 5717 ns 5711 ns 122079
random_gen/1000 52227 ns 52112 ns 13681
random_gen/10000 685568 ns 684933 ns 1004
random_gen/100000 5884780 ns 5879324 ns 117
Skarupke bytell_hash_map
fill_only/10 138 ns 138 ns 5058534
fill_only/100 2151 ns 2149 ns 327212
fill_only/1000 27634 ns 27611 ns 24986
fill_only/10000 296404 ns 296049 ns 1952
fill_only/100000 2849492 ns 2844718 ns 246
lookup_one/10 141 ns 141 ns 4958972
lookup_one/100 2162 ns 2160 ns 315197
lookup_one/1000 28558 ns 28533 ns 24570
lookup_one/10000 246332 ns 246077 ns 2839
lookup_one/100000 2885668 ns 2881094 ns 243
lookup_all/10 159 ns 159 ns 4309906
lookup_all/100 2425 ns 2423 ns 290031
lookup_all/1000 30890 ns 30865 ns 22673
lookup_all/10000 270785 ns 270475 ns 2593
lookup_all/100000 3684583 ns 3663493 ns 224
lookup_missing/10 834 ns 832 ns 843965
lookup_missing/100 8187 ns 8180 ns 84750
lookup_missing/1000 77134 ns 77059 ns 8875
lookup_missing/10000 960456 ns 959403 ns 714
lookup_missing/100000 9472505 ns 9456908 ns 69
lookup_random/10 769 ns 768 ns 893740
lookup_random/100 7794 ns 7788 ns 87959
lookup_random/1000 77617 ns 77551 ns 8748
lookup_random/10000 905177 ns 904216 ns 766
lookup_random/100000 8663183 ns 8651407 ns 75
insert_random/10 1395 ns 1391 ns 488309
insert_random/100 13188 ns 13177 ns 53036
insert_random/1000 130864 ns 130550 ns 5541
insert_random/10000 1548878 ns 1547344 ns 450
insert_random/100000 14164197 ns 14148386 ns 48
traversal/10 163 ns 163 ns 4295967
traversal/100 2396 ns 2394 ns 286450
traversal/1000 31632 ns 31605 ns 22214
traversal/10000 282575 ns 282211 ns 2562
traversal/100000 3298353 ns 3290213 ns 223
copy_element_wise/10 301 ns 301 ns 2215562
copy_element_wise/100 4772 ns 4768 ns 147452
copy_element_wise/1000 61560 ns 61501 ns 11153
copy_element_wise/10000 534456 ns 533846 ns 1217
copy_element_wise/100000 5914916 ns 5901792 ns 105
random_gen/10 595 ns 595 ns 1154146
random_gen/100 5548 ns 5535 ns 128991
random_gen/1000 47567 ns 47514 ns 14639
random_gen/10000 660270 ns 658128 ns 1080
random_gen/100000 5530196 ns 5525262 ns 126
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment