Settings
KEY_COUNT: 20000000
KEY_COUNT_MEASUREMENT_INTERVAL: 50000
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 4,000,000 8,000,000 12,000,000 16,000,000
64-bit integer key, 448-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 4,000,000 8,000,000 12,000,000 16,000,000
16-char c-string key, 64-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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 4,000,000 8,000,000 12,000,000 16,000,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.11 1.78 1.00 1.01 1.85 6.39 1.67 1.33 1.23 1.46 1.27 2.02 1.07 6.75 1.27 64-bit integer key, 448-bit value: Insert nonexisting 1.54 1.36 1.08 1.49 1.69 4.91 1.96 1.29 1.15 1.02 1.78 1.39 1.00 4.11 1.38 16-char c-string key, 64-bit value: Insert nonexisting 1.33 1.55 1.16 1.61 2.22 2.87 1.34 1.73 1.72 1.00 1.89 1.13 1.54 2.61 1.40 32-bit integer key, 32-bit value: Erase existing 2.17✝ 2.77 1.36✝ 1.33✝ 1.51 11.26 2.47 1.50 1.28✝ 1.23✝ 1.00✝ 4.80✝ 3.81 7.79 1.49 64-bit integer key, 448-bit value: Erase existing 1.86✝ 2.33 1.31✝ 1.28✝ 1.75 9.84 3.31 1.50 1.11✝ 1.00✝ 1.15✝ 3.98✝ 4.08 6.10 1.35 16-char c-string key, 64-bit value: Erase existing 1.29✝ 1.53 1.04✝ 1.00✝ 1.26 3.21 1.71 1.08 1.27✝ 1.01✝ 1.30✝ 2.00✝ 4.68 2.41 1.06 32-bit integer key, 32-bit value: Replace existing 1.67 1.74 1.66 1.53 1.15 2.71 1.77 1.29 1.71 1.90 1.00 2.45 1.35 3.80 1.29 64-bit integer key, 448-bit value: Replace existing 1.38 1.33 1.48 1.24 1.28 2.34 1.49 1.29 1.49 1.00 1.13 1.75 1.26 2.90 1.46 16-char c-string key, 64-bit value: Replace existing 1.13 1.04 1.03 1.00 1.17 1.52 1.43 1.03 1.30 1.04 1.29 1.08 1.18 1.46 1.03 32-bit integer key, 32-bit value: Erase nonexisting 1.17 1.70 1.00 1.25 1.61 5.25 1.92 1.19 2.23 2.72 2.60 3.94 2.38 3.72 1.17 64-bit integer key, 448-bit value: Erase nonexisting 1.27 1.75 1.00 1.25 2.02 5.83 2.74 1.25 2.67 2.87 3.52 4.06 2.52 3.91 1.19 16-char c-string key, 64-bit value: Erase nonexisting 1.08 1.21 1.00 1.04 1.65 2.43 1.96 1.07 2.47 1.69 2.64 2.03 2.28 1.93 1.06 32-bit integer key, 32-bit value: Look up existing 1.63 1.15 1.28 1.29 1.19 2.28 1.20 1.12 1.48 1.07 1.00 1.94 1.16 2.58 1.09 64-bit integer key, 448-bit value: Look up existing 1.61 1.10 1.48 1.33 1.50 2.41 1.46 1.31 1.62 1.00 1.25 1.73 1.47 2.45 1.11 16-char c-string key, 64-bit value: Look up existing 1.12 1.02 1.05 1.00 1.24 1.59 1.53 1.03 1.39 1.02 1.33 1.05 1.27 1.38 1.02 32-bit integer key, 32-bit value: Look up nonexisting 1.00 1.33 1.02 1.26 1.38 3.67 1.55 1.01 1.84 2.33 2.26 3.23 2.00 3.22 1.00 64-bit integer key, 448-bit value: Look up nonexisting 1.10 1.34 1.11 1.23 1.65 3.96 2.10 1.04 2.03 2.31 2.91 3.12 2.34 3.24 1.00 16-char c-string key, 64-bit value: Look up nonexisting 1.01 1.33 1.18 1.22 1.67 2.32 1.86 1.01 2.28 1.61 2.69 1.91 2.13 1.83 1.00 32-bit integer key, 32-bit value: Iterate 3.87 1.00 2.44 2.38 7.37 87.83 5.34 4.12 6.68 16.79 5.45 1.17 4.89 37.39 3.48 64-bit integer key, 448-bit value: Iterate 1.80 1.00 1.88 1.85 2.21 24.67 1.82 1.87 1.91 5.45 1.71 1.10 1.59 10.53 1.78 16-char c-string key, 64-bit value: Iterate 3.22 1.00 2.30 2.33 5.71 79.94 4.63 3.74 5.53 16.87 4.79 1.09 4.06 30.64 2.70 ✝ Relies on tombstones or a tombstone-like mechanism