Settings
KEY_COUNT: 200000
KEY_COUNT_MEASUREMENT_INTERVAL: 500
RUN_COUNT: 14
DISCARDED_RUNS_COUNT: 4
MAX_LOAD_FACTOR: 0.875
APPROXIMATE_CACHE_SIZE: 20000000
MILLISECOND_COOLDOWN_BETWEEN_BENCHMARKS: 1000
32-bit integer key, 32-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to erase 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Time to erase 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Time to erase 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to replace 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Time to replace 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Time to replace 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to erase 1,000 nonexisting keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Time to erase 1,000 nonexisting keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Time to erase 1,000 nonexisting keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to look up 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Time to look up 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Time to look up 1,000 existing keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to look up 1,000 nonexisting keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Time to look up 1,000 nonexisting keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Time to look up 1,000 nonexisting keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to iterate over 5,000 keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Time to iterate over 5,000 keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
16-char c-string key, 64-bit value: Time to iterate over 5,000 keys with N keys in the map
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
Total time taken relative to the fastest table in the benchmark (lower is better) ankerl absl boost ska std tsl CC STC klib M*LIB stb_ds uthash Verstable 32-bit integer key, 32-bit value: Insert nonexisting 1.77 1.15 1.00 2.43 4.66 2.18 1.84 1.59 1.64 1.56 2.24 6.84 1.94 64-bit integer key, 448-bit value: Insert nonexisting 1.53 1.18 1.00 2.30 4.45 2.91 1.62 1.69 1.27 2.20 1.60 4.80 1.61 16-char c-string key, 64-bit value: Insert nonexisting 1.32 1.13 1.00 1.77 2.08 1.31 1.46 1.51 1.63 1.83 1.15 2.50 1.38 32-bit integer key, 32-bit value: Erase existing 3.91 1.58 1.00 1.84 6.29 3.12 1.56 5.39 1.37 1.20 5.45 6.88 1.60 64-bit integer key, 448-bit value: Erase existing 2.71 1.69 1.21 1.91 6.22 3.58 1.49 4.76 1.00 1.50 4.29 4.74 1.54 16-char c-string key, 64-bit value: Erase existing 1.67 1.23 1.00 1.33 2.38 1.83 1.09 4.51 1.14 1.12 2.12 2.37 1.07 32-bit integer key, 32-bit value: Replace existing 1.98 1.00 1.06 1.39 3.77 1.79 1.18 1.54 1.67 1.35 2.71 3.99 1.17 64-bit integer key, 448-bit value: Replace existing 1.23 1.12 1.25 1.40 2.91 1.74 1.19 1.45 1.00 1.79 1.73 2.24 1.18 16-char c-string key, 64-bit value: Replace existing 1.05 1.00 1.01 1.11 1.63 1.39 1.07 1.09 1.12 1.09 1.17 1.54 1.08 32-bit integer key, 32-bit value: Erase nonexisting 2.55 1.35 1.00 2.28 6.42 2.97 1.98 3.60 3.10 3.35 4.85 6.48 1.96 64-bit integer key, 448-bit value: Erase nonexisting 2.29 1.42 1.00 2.78 8.93 4.54 1.82 3.60 2.77 5.68 4.37 6.33 1.84 16-char c-string key, 64-bit value: Erase nonexisting 1.18 1.10 1.02 1.52 2.20 1.81 1.03 1.75 2.07 2.20 1.64 2.01 1.00 32-bit integer key, 32-bit value: Look up existing 1.92 1.13 1.00 1.45 3.70 2.05 1.26 1.57 1.69 1.49 2.83 4.07 1.20 64-bit integer key, 448-bit value: Look up existing 1.07 1.18 1.11 1.34 2.97 1.71 1.08 1.32 1.43 1.51 1.68 2.24 1.00 16-char c-string key, 64-bit value: Look up existing 1.00 1.08 1.02 1.12 1.60 1.35 1.04 1.24 1.21 1.14 1.26 1.57 1.04 32-bit integer key, 32-bit value: Look up nonexisting 4.05 3.80 2.80 6.36 17.55 8.37 5.52 9.96 8.44 1.00 12.83 18.23 5.54 64-bit integer key, 448-bit value: Look up nonexisting 4.15 3.95 3.64 8.01 25.23 12.62 5.30 10.17 7.74 1.00 12.11 18.54 5.12 16-char c-string key, 64-bit value: Look up nonexisting 30.96 30.06 27.33 41.30 58.98 47.97 28.43 46.75 53.70 1.00 44.10 52.79 27.44 32-bit integer key, 32-bit value: Iterate 1.00 6.11 3.56 10.08 15.97 8.02 6.46 7.66 9.54 9.28 1.41 11.18 5.22 64-bit integer key, 448-bit value: Iterate 1.00 1.97 1.83 3.10 9.20 2.85 2.17 2.14 2.63 3.08 1.20 4.27 1.97 16-char c-string key, 64-bit value: Iterate 1.00 3.24 2.30 5.75 19.05 4.84 3.59 4.17 4.95 4.92 1.16 6.72 2.86