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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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 table
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/lighter is better) absl ankerl boost emilib2 ska std tsl CC khash DICT DICT_OA stb_ds STC uthash Verstable 32-bit integer key, 32-bit value: Insert nonexisting 1.33 1.75 1.00 1.09 1.93 3.27 1.98 1.56 1.63 1.70 1.44 2.02 1.19 4.98 1.47 64-bit integer key, 448-bit value: Insert nonexisting 2.00 1.19 1.38 2.03 1.63 2.55 1.80 1.43 1.20 1.00 1.52 1.26 1.18 3.38 1.64 16-char c-string key, 64-bit value: Insert nonexisting 1.11 1.16 1.00 1.16 1.35 1.78 1.24 1.23 1.20 1.00 1.21 1.15 1.19 2.10 1.14 32-bit integer key, 32-bit value: Erase existing 1.94✝ 4.68 1.00✝ 1.04✝ 2.03 7.41 3.54 1.80 1.62✝ 1.59✝ 1.43✝ 5.78✝ 6.54 8.14 1.78 64-bit integer key, 448-bit value: Erase existing 1.72✝ 2.92 1.00✝ 1.37✝ 1.76 6.25 3.07 1.44 1.08✝ 1.05✝ 1.09✝ 4.21✝ 4.79 5.99 1.44 16-char c-string key, 64-bit value: Erase existing 1.33✝ 2.09 1.00✝ 1.02✝ 1.31 3.00 1.90 1.15 1.23✝ 1.04✝ 1.18✝ 2.46✝ 5.05 3.30 1.14 32-bit integer key, 32-bit value: Replace existing 1.00 2.36 1.29 1.05 1.28 2.23 2.28 1.19 1.83 1.94 1.35 2.70 1.54 4.19 1.22 64-bit integer key, 448-bit value: Replace existing 1.10 1.42 1.16 1.10 1.17 1.97 1.53 1.17 1.32 1.00 1.17 1.64 1.34 3.10 1.44 16-char c-string key, 64-bit value: Replace existing 1.09 1.24 1.00 1.11 1.14 1.79 1.56 1.08 1.31 1.14 1.23 1.27 1.27 2.28 1.08 32-bit integer key, 32-bit value: Erase nonexisting 1.37 2.76 1.00 1.30 2.41 4.15 3.12 2.14 3.36 3.74 3.76 5.22 3.91 5.18 2.08 64-bit integer key, 448-bit value: Erase nonexisting 1.40 2.66 1.00 1.27 2.73 5.54 3.90 2.07 3.36 3.70 4.49 4.90 4.03 6.12 2.01 16-char c-string key, 64-bit value: Erase nonexisting 1.04 1.27 1.00 1.09 1.44 1.86 1.72 1.15 1.81 1.55 1.87 1.92 1.81 2.26 1.14 32-bit integer key, 32-bit value: Look up existing 1.00 1.64 1.06 1.02 1.18 1.80 1.65 1.06 1.43 1.29 1.22 2.19 1.37 2.82 1.04 64-bit integer key, 448-bit value: Look up existing 1.20 1.22 1.16 1.22 1.28 1.98 1.58 1.20 1.32 1.00 1.21 1.64 1.49 2.62 1.07 16-char c-string key, 64-bit value: Look up existing 1.07 1.18 1.00 1.04 1.19 1.73 1.51 1.08 1.24 1.09 1.17 1.23 1.24 2.13 1.04 32-bit integer key, 32-bit value: Look up nonexisting 1.00 1.18 1.01 1.10 1.84 2.72 2.19 1.59 2.42 2.73 2.86 3.64 2.91 3.96 1.57 64-bit integer key, 448-bit value: Look up nonexisting 1.06 1.19 1.00 1.11 2.10 3.70 3.03 1.64 2.55 2.74 3.49 3.56 3.18 4.76 1.57 16-char c-string key, 64-bit value: Look up nonexisting 1.06 1.07 1.00 1.03 1.22 1.72 1.57 1.07 1.64 1.44 1.82 1.73 1.65 2.12 1.03 32-bit integer key, 32-bit value: Iterate 6.55 1.00 3.65 3.54 10.14 15.32 7.95 6.36 9.91 8.76 7.93 1.67 7.40 10.57 5.06 64-bit integer key, 448-bit value: Iterate 2.99 1.00 2.36 2.59 4.65 13.86 3.75 3.46 4.75 5.54 4.16 1.19 3.33 8.08 2.75 16-char c-string key, 64-bit value: Iterate 4.53 1.00 2.77 3.11 7.31 20.29 6.38 5.31 7.81 8.62 6.66 1.42 5.75 11.71 3.84 ✝ Relies on tombstones or a tombstone-like mechanism