clang++-6.0 -Itests -I. -isystem tests/gtest -march=native -Wall -Wextra -Wpedantic -Wno-missing-field-initializers -std=c++14 -O3 -D_SPARSEHASH_CI_TESTING_ bench.o -o bench -lpthread huangyuanbing@ubuntu:~/sparsehash-c11$ ./bench ====== Average over 10485760 iterations Current time (GMT): Wed Sep 11 13:57:18 2019 *** WARNING ***: sys/resources.h was not found, so all times reported are wall-clock time, not user time DENSE_HASH_MAP (4 byte objects, 10485760 iterations): map_grow 43.0 ns (27262980 hashes, 94371920 copies) map_predict/grow 17.3 ns (10485760 hashes, 10485760 copies) map_replace 8.8 ns (10485760 hashes, 0 copies) map_fetch_random 29.0 ns (10485760 hashes, 0 copies) map_fetch_sequential 6.7 ns (10485760 hashes, 0 copies) map_fetch_empty 1.5 ns ( 0 hashes, 0 copies) map_remove 10.2 ns (10485760 hashes, 10485760 copies) map_toggle 45.2 ns (21626879 hashes, 47185880 copies) map_iterate 3.0 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 46.8ns/insertion stresshashfunction map_size=256 stride=256: 24.7ns/insertion stresshashfunction map_size=1024 stride=1: 78.8ns/insertion stresshashfunction map_size=1024 stride=1024: 57.2ns/insertion EMILIB_HASH_MAP (4 byte objects, 10485760 iterations): map_grow 22.1 ns (23907558 hashes, 23907537 copies) map_predict/grow 5.9 ns (10485760 hashes, 10485760 copies) map_replace 4.1 ns (10485760 hashes, 0 copies) map_fetch_random 12.2 ns (10485760 hashes, 0 copies) map_fetch_sequential 2.0 ns (10485760 hashes, 0 copies) map_fetch_empty 1.5 ns (10485760 hashes, 0 copies) map_remove 2.9 ns (10485760 hashes, 0 copies) map_toggle 7.9 ns (20971520 hashes, 10485760 copies) map_iterate 2.1 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 5.5ns/insertion stresshashfunction map_size=256 stride=256: 227.9ns/insertion stresshashfunction map_size=1024 stride=1: 5.4ns/insertion stresshashfunction map_size=1024 stride=1024: 907.0ns/insertion MARTIN_FLAT_MAP (4 byte objects, 10485760 iterations): map_grow 87.3 ns (25585262 hashes, 28698840 copies) map_predict/grow 100.8 ns (10485760 hashes, 10485760 copies) map_replace 28.1 ns (10485760 hashes, 0 copies) map_fetch_random 19.1 ns (10485760 hashes, 0 copies) map_fetch_sequential 19.6 ns (10485760 hashes, 0 copies) map_fetch_empty 4.0 ns (10485760 hashes, 0 copies) map_remove 23.9 ns (10485760 hashes, 0 copies) map_toggle 10.5 ns (20971521 hashes, 10485760 copies) map_iterate 5.3 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 11.5ns/insertion stresshashfunction map_size=256 stride=256: 9.9ns/insertion stresshashfunction map_size=1024 stride=1: 9.2ns/insertion stresshashfunction map_size=1024 stride=1024: 9.1ns/insertion SKA_FLAT_MAP (4 byte objects, 10485760 iterations): map_grow 63.5 ns (25585263 hashes, 30670834 copies) map_predict/grow 39.3 ns (10485760 hashes, 10485760 copies) map_replace 18.2 ns (10485760 hashes, 0 copies) map_fetch_random 13.3 ns (10485760 hashes, 0 copies) map_fetch_sequential 13.4 ns (10485760 hashes, 0 copies) map_fetch_empty 2.2 ns (10485760 hashes, 0 copies) map_remove 22.7 ns (10485760 hashes, 235166 copies) map_toggle 12.2 ns (20971521 hashes, 10485760 copies) map_iterate 3.3 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 9.0ns/insertion stresshashfunction map_size=256 stride=256: 9.1ns/insertion stresshashfunction map_size=1024 stride=1: 9.1ns/insertion stresshashfunction map_size=1024 stride=1024: 9.1ns/insertion TSL_ROBIN_MAP (4 byte objects, 10485760 iterations): map_grow 32.4 ns (23907520 hashes, 23907520 copies) map_predict/grow 11.7 ns (10485760 hashes, 10485760 copies) map_replace 6.2 ns (10485760 hashes, 0 copies) map_fetch_random 12.9 ns (10485760 hashes, 0 copies) map_fetch_sequential 2.3 ns (10485760 hashes, 0 copies) map_fetch_empty 0.0 ns (10485760 hashes, 0 copies) map_remove 6.1 ns (10485760 hashes, 0 copies) map_toggle 93.0 ns (20971520 hashes, 10485760 copies) map_iterate 2.1 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 11.1ns/insertion stresshashfunction map_size=256 stride=256: 98.3ns/insertion stresshashfunction map_size=1024 stride=1: 11.1ns/insertion stresshashfunction map_size=1024 stride=1024: 331.5ns/insertion PHMAP_FLAT_MAP (4 byte objects, 10485760 iterations): map_grow 107.5 ns (35651581 hashes, 25165821 copies) map_predict/grow 104.0 ns (20971520 hashes, 10485760 copies) map_replace 41.5 ns (10485760 hashes, 0 copies) map_fetch_random 29.4 ns (10485760 hashes, 0 copies) map_fetch_sequential 30.9 ns (10485760 hashes, 0 copies) map_fetch_empty 1.8 ns (10485760 hashes, 0 copies) map_remove 57.4 ns (10485760 hashes, 0 copies) map_toggle 40.7 ns (31457280 hashes, 10485760 copies) map_iterate 5.0 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 23.1ns/insertion stresshashfunction map_size=256 stride=256: 23.1ns/insertion stresshashfunction map_size=1024 stride=1: 22.6ns/insertion stresshashfunction map_size=1024 stride=1024: 22.7ns/insertion STANDARD HASH_MAP (4 byte objects, 10485760 iterations): map_grow 79.0 ns (10485760 hashes, 10485760 copies) map_predict/grow 50.3 ns (10485760 hashes, 10485760 copies) map_replace 7.4 ns (10485760 hashes, 0 copies) map_fetch_random 47.0 ns (10485760 hashes, 0 copies) map_fetch_sequential 7.2 ns (10485760 hashes, 0 copies) map_fetch_empty 5.7 ns (10485760 hashes, 0 copies) map_remove 29.8 ns (10485760 hashes, 0 copies) map_toggle 55.7 ns (20971520 hashes, 10485760 copies) map_iterate 3.7 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 38.5ns/insertion stresshashfunction map_size=256 stride=256: 38.5ns/insertion stresshashfunction map_size=1024 stride=1: 38.4ns/insertion stresshashfunction map_size=1024 stride=1024: 38.4ns/insertion DENSE_HASH_MAP (8 byte objects, 5242880 iterations): map_grow 61.7 ns (13631491 hashes, 47185992 copies) map_predict/grow 20.2 ns ( 5242880 hashes, 5242880 copies) map_replace 10.9 ns ( 5242880 hashes, 0 copies) map_fetch_random 32.5 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 10.0 ns ( 5242880 hashes, 0 copies) map_fetch_empty 2.0 ns ( 0 hashes, 0 copies) map_remove 12.6 ns ( 5242880 hashes, 5242880 copies) map_toggle 51.7 ns (10813439 hashes, 23592920 copies) map_iterate 3.8 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 46.7ns/insertion stresshashfunction map_size=256 stride=256: 24.6ns/insertion stresshashfunction map_size=1024 stride=1: 78.8ns/insertion stresshashfunction map_size=1024 stride=1024: 56.9ns/insertion EMILIB_HASH_MAP (8 byte objects, 5242880 iterations): map_grow 32.9 ns (11953790 hashes, 11953770 copies) map_predict/grow 11.4 ns ( 5242880 hashes, 5242880 copies) map_replace 8.8 ns ( 5242880 hashes, 0 copies) map_fetch_random 12.5 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 3.2 ns ( 5242880 hashes, 0 copies) map_fetch_empty 1.7 ns ( 5242880 hashes, 0 copies) map_remove 7.2 ns ( 5242880 hashes, 0 copies) map_toggle 16.5 ns (10485760 hashes, 5242880 copies) map_iterate 2.7 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 5.5ns/insertion stresshashfunction map_size=256 stride=256: 227.6ns/insertion stresshashfunction map_size=1024 stride=1: 5.4ns/insertion stresshashfunction map_size=1024 stride=1024: 906.7ns/insertion MARTIN_FLAT_MAP (8 byte objects, 5242880 iterations): map_grow 79.6 ns (12792635 hashes, 15609927 copies) map_predict/grow 93.3 ns ( 5242880 hashes, 5243026 copies) map_replace 35.3 ns ( 5242880 hashes, 0 copies) map_fetch_random 20.9 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 19.7 ns ( 5242880 hashes, 0 copies) map_fetch_empty 4.8 ns ( 5242880 hashes, 0 copies) map_remove 31.1 ns ( 5242880 hashes, 477527 copies) map_toggle 17.9 ns (10485761 hashes, 5242880 copies) map_iterate 5.4 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 11.7ns/insertion stresshashfunction map_size=256 stride=256: 10.1ns/insertion stresshashfunction map_size=1024 stride=1: 9.1ns/insertion stresshashfunction map_size=1024 stride=1024: 9.1ns/insertion SKA_FLAT_MAP (8 byte objects, 5242880 iterations): map_grow 67.6 ns (12792635 hashes, 15081094 copies) map_predict/grow 36.5 ns ( 5242880 hashes, 5242880 copies) map_replace 18.3 ns ( 5242880 hashes, 0 copies) map_fetch_random 14.0 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 14.1 ns ( 5242880 hashes, 0 copies) map_fetch_empty 1.9 ns ( 5242880 hashes, 0 copies) map_remove 24.7 ns ( 5242880 hashes, 0 copies) map_toggle 13.9 ns (10485761 hashes, 5242880 copies) map_iterate 2.9 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 10.2ns/insertion stresshashfunction map_size=256 stride=256: 10.2ns/insertion stresshashfunction map_size=1024 stride=1: 10.2ns/insertion stresshashfunction map_size=1024 stride=1024: 10.1ns/insertion TSL_ROBIN_MAP (8 byte objects, 5242880 iterations): map_grow 38.7 ns (11953754 hashes, 11953754 copies) map_predict/grow 13.2 ns ( 5242880 hashes, 5242880 copies) map_replace 8.5 ns ( 5242880 hashes, 0 copies) map_fetch_random 13.5 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 3.7 ns ( 5242880 hashes, 0 copies) map_fetch_empty 0.0 ns ( 5242880 hashes, 0 copies) map_remove 7.6 ns ( 5242880 hashes, 0 copies) map_toggle 94.4 ns (10485760 hashes, 5242880 copies) map_iterate 2.6 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 11.1ns/insertion stresshashfunction map_size=256 stride=256: 97.9ns/insertion stresshashfunction map_size=1024 stride=1: 11.1ns/insertion stresshashfunction map_size=1024 stride=1024: 331.3ns/insertion PHMAP_FLAT_MAP (8 byte objects, 5242880 iterations): map_grow 88.8 ns (17825789 hashes, 12582909 copies) map_predict/grow 88.3 ns (10485760 hashes, 5242880 copies) map_replace 40.0 ns ( 5242880 hashes, 0 copies) map_fetch_random 26.2 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 26.0 ns ( 5242880 hashes, 0 copies) map_fetch_empty 2.6 ns ( 5242880 hashes, 0 copies) map_remove 42.6 ns ( 5242880 hashes, 0 copies) map_toggle 42.5 ns (15728640 hashes, 5242880 copies) map_iterate 5.3 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 23.1ns/insertion stresshashfunction map_size=256 stride=256: 23.2ns/insertion stresshashfunction map_size=1024 stride=1: 22.6ns/insertion stresshashfunction map_size=1024 stride=1024: 22.6ns/insertion STANDARD HASH_MAP (8 byte objects, 5242880 iterations): map_grow 89.1 ns ( 5242880 hashes, 5242880 copies) map_predict/grow 52.0 ns ( 5242880 hashes, 5242880 copies) map_replace 9.7 ns ( 5242880 hashes, 0 copies) map_fetch_random 49.1 ns ( 5242880 hashes, 0 copies) map_fetch_sequential 7.2 ns ( 5242880 hashes, 0 copies) map_fetch_empty 5.7 ns ( 5242880 hashes, 0 copies) map_remove 35.9 ns ( 5242880 hashes, 0 copies) map_toggle 63.1 ns (10485760 hashes, 5242880 copies) map_iterate 5.2 ns ( 0 hashes, 0 copies) stresshashfunction map_size=256 stride=1: 38.1ns/insertion stresshashfunction map_size=256 stride=256: 38.1ns/insertion stresshashfunction map_size=1024 stride=1: 38.1ns/insertion stresshashfunction map_size=1024 stride=1024: 38.1ns/insertion DENSE_HASH_MAP (16 byte objects, 2621440 iterations): map_grow 95.3 ns ( 6815746 hashes, 23593024 copies) map_predict/grow 25.2 ns ( 2621440 hashes, 2621440 copies) map_replace 16.4 ns ( 2621440 hashes, 0 copies) map_fetch_random 35.1 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 14.6 ns ( 2621440 hashes, 0 copies) map_fetch_empty 2.2 ns ( 0 hashes, 0 copies) map_remove 18.7 ns ( 2621440 hashes, 2621440 copies) map_toggle 57.7 ns ( 5406719 hashes, 11796440 copies) map_iterate 5.7 ns ( 0 hashes, 0 copies) EMILIB_HASH_MAP (16 byte objects, 2621440 iterations): map_grow 44.5 ns ( 5976905 hashes, 5976886 copies) map_predict/grow 15.4 ns ( 2621440 hashes, 2621440 copies) map_replace 11.2 ns ( 2621440 hashes, 0 copies) map_fetch_random 14.0 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 4.7 ns ( 2621440 hashes, 0 copies) map_fetch_empty 1.7 ns ( 2621440 hashes, 0 copies) map_remove 12.0 ns ( 2621440 hashes, 0 copies) map_toggle 19.5 ns ( 5242880 hashes, 2621440 copies) map_iterate 3.9 ns ( 0 hashes, 0 copies) MARTIN_FLAT_MAP (16 byte objects, 2621440 iterations): map_grow 85.6 ns ( 6396322 hashes, 9081235 copies) map_predict/grow 60.3 ns ( 2621440 hashes, 2621440 copies) map_replace 37.7 ns ( 2621440 hashes, 0 copies) map_fetch_random 20.3 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 16.0 ns ( 2621440 hashes, 0 copies) map_fetch_empty 5.0 ns ( 2621440 hashes, 0 copies) map_remove 25.9 ns ( 2621440 hashes, 0 copies) map_toggle 22.5 ns ( 5242881 hashes, 2621440 copies) map_iterate 5.8 ns ( 0 hashes, 0 copies) SKA_FLAT_MAP (16 byte objects, 2621440 iterations): map_grow 97.2 ns ( 6396312 hashes, 7483818 copies) map_predict/grow 61.3 ns ( 2621440 hashes, 2621440 copies) map_replace 35.2 ns ( 2621440 hashes, 0 copies) map_fetch_random 14.8 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 14.5 ns ( 2621440 hashes, 0 copies) map_fetch_empty 2.0 ns ( 2621440 hashes, 0 copies) map_remove 84.0 ns ( 2621440 hashes, 61550 copies) map_toggle 19.5 ns ( 5242881 hashes, 2621440 copies) map_iterate 4.9 ns ( 0 hashes, 0 copies) TSL_ROBIN_MAP (16 byte objects, 2621440 iterations): map_grow 57.9 ns ( 5976871 hashes, 5976871 copies) map_predict/grow 20.5 ns ( 2621440 hashes, 2621440 copies) map_replace 13.6 ns ( 2621440 hashes, 0 copies) map_fetch_random 14.6 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 5.3 ns ( 2621440 hashes, 0 copies) map_fetch_empty 0.0 ns ( 2621440 hashes, 0 copies) map_remove 10.8 ns ( 2621440 hashes, 0 copies) map_toggle 97.8 ns ( 5242880 hashes, 2621440 copies) map_iterate 3.9 ns ( 0 hashes, 0 copies) PHMAP_FLAT_MAP (16 byte objects, 2621440 iterations): map_grow 94.1 ns ( 8912893 hashes, 6291453 copies) map_predict/grow 70.2 ns ( 5242880 hashes, 2621440 copies) map_replace 48.5 ns ( 2621440 hashes, 0 copies) map_fetch_random 50.3 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 52.0 ns ( 2621440 hashes, 0 copies) map_fetch_empty 9.3 ns ( 2621440 hashes, 0 copies) map_remove 63.3 ns ( 2621440 hashes, 0 copies) map_toggle 52.5 ns ( 7864320 hashes, 2621440 copies) map_iterate 5.9 ns ( 0 hashes, 0 copies) STANDARD HASH_MAP (16 byte objects, 2621440 iterations): map_grow 85.7 ns ( 2621440 hashes, 2621440 copies) map_predict/grow 57.0 ns ( 2621440 hashes, 2621440 copies) map_replace 14.3 ns ( 2621440 hashes, 0 copies) map_fetch_random 53.4 ns ( 2621440 hashes, 0 copies) map_fetch_sequential 8.3 ns ( 2621440 hashes, 0 copies) map_fetch_empty 6.1 ns ( 2621440 hashes, 0 copies) map_remove 39.9 ns ( 2621440 hashes, 0 copies) map_toggle 74.1 ns ( 5242880 hashes, 2621440 copies) map_iterate 5.3 ns ( 0 hashes, 0 copies) DENSE_HASH_MAP (256 byte objects, 327680 iterations): map_grow 979.4 ns ( 851967 hashes, 2949160 copies) map_predict/grow 284.8 ns ( 327680 hashes, 327680 copies) map_replace 61.4 ns ( 327680 hashes, 0 copies) map_fetch_random 51.8 ns ( 327680 hashes, 0 copies) map_fetch_sequential 54.0 ns ( 327680 hashes, 0 copies) map_fetch_empty 7.4 ns ( 0 hashes, 0 copies) map_remove 278.4 ns ( 327680 hashes, 327680 copies) map_toggle 94.1 ns ( 675839 hashes, 1474520 copies) map_iterate 43.8 ns ( 0 hashes, 0 copies) EMILIB_HASH_MAP (256 byte objects, 327680 iterations): map_grow 596.4 ns ( 747128 hashes, 747112 copies) map_predict/grow 319.7 ns ( 327680 hashes, 327680 copies) map_replace 38.2 ns ( 327680 hashes, 0 copies) map_fetch_random 36.1 ns ( 327680 hashes, 0 copies) map_fetch_sequential 36.3 ns ( 327680 hashes, 0 copies) map_fetch_empty 11.7 ns ( 327680 hashes, 0 copies) map_remove 40.3 ns ( 327680 hashes, 0 copies) map_toggle 36.6 ns ( 655360 hashes, 327680 copies) map_iterate 24.0 ns ( 0 hashes, 0 copies) MARTIN_FLAT_MAP (256 byte objects, 327680 iterations): map_grow 542.0 ns ( 799545 hashes, 1425956 copies) map_predict/grow 411.8 ns ( 327681 hashes, 917257 copies) map_replace 69.6 ns ( 327680 hashes, 0 copies) map_fetch_random 74.6 ns ( 327680 hashes, 0 copies) map_fetch_sequential 70.2 ns ( 327680 hashes, 0 copies) map_fetch_empty 17.3 ns ( 327680 hashes, 0 copies) map_remove 282.4 ns ( 327680 hashes, 964909 copies) map_toggle 40.0 ns ( 655361 hashes, 327680 copies) map_iterate 11.3 ns ( 0 hashes, 0 copies) SKA_FLAT_MAP (256 byte objects, 327680 iterations): map_grow 608.2 ns ( 798509 hashes, 973238 copies) map_predict/grow 267.9 ns ( 327680 hashes, 330392 copies) map_replace 94.4 ns ( 327680 hashes, 0 copies) map_fetch_random 17.1 ns ( 327680 hashes, 0 copies) map_fetch_sequential 17.0 ns ( 327680 hashes, 0 copies) map_fetch_empty 2.3 ns ( 327680 hashes, 0 copies) map_remove 24.3 ns ( 327680 hashes, 3265 copies) map_toggle 31.9 ns ( 655361 hashes, 327680 copies) map_iterate 25.3 ns ( 0 hashes, 0 copies) TSL_ROBIN_MAP (256 byte objects, 327680 iterations): map_grow 569.4 ns ( 747100 hashes, 747100 copies) map_predict/grow 270.1 ns ( 327680 hashes, 327680 copies) map_replace 63.2 ns ( 327680 hashes, 0 copies) map_fetch_random 16.9 ns ( 327680 hashes, 0 copies) map_fetch_sequential 19.2 ns ( 327680 hashes, 0 copies) map_fetch_empty 0.0 ns ( 327680 hashes, 0 copies) map_remove 34.2 ns ( 327680 hashes, 0 copies) map_toggle 142.9 ns ( 655360 hashes, 327680 copies) map_iterate 25.4 ns ( 0 hashes, 0 copies) PHMAP_FLAT_MAP (256 byte objects, 327680 iterations): map_grow 482.1 ns ( 1114109 hashes, 786429 copies) map_predict/grow 369.3 ns ( 655360 hashes, 327680 copies) map_replace 97.3 ns ( 327680 hashes, 0 copies) map_fetch_random 62.7 ns ( 327680 hashes, 0 copies) map_fetch_sequential 63.1 ns ( 327680 hashes, 0 copies) map_fetch_empty 16.0 ns ( 327680 hashes, 0 copies) map_remove 67.5 ns ( 327680 hashes, 0 copies) map_toggle 77.9 ns ( 983040 hashes, 327680 copies) map_iterate 11.7 ns ( 0 hashes, 0 copies) STANDARD HASH_MAP (256 byte objects, 327680 iterations): map_grow 205.9 ns ( 327680 hashes, 327680 copies) map_predict/grow 179.0 ns ( 327680 hashes, 327680 copies) map_replace 46.1 ns ( 327680 hashes, 0 copies) map_fetch_random 47.0 ns ( 327680 hashes, 0 copies) map_fetch_sequential 29.4 ns ( 327680 hashes, 0 copies) map_fetch_empty 6.6 ns ( 327680 hashes, 0 copies) map_remove 76.8 ns ( 327680 hashes, 0 copies) map_toggle 102.0 ns ( 655360 hashes, 327680 copies) map_iterate 34.0 ns ( 0 hashes, 0 copies)