Settings
KEY_COUNT: 2000000
KEY_COUNT_MEASUREMENT_INTERVAL: 5000
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 400,000 800,000 1,200,000 1,600,000
64-bit integer key, 448-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 400,000 800,000 1,200,000 1,600,000
16-char c-string key, 64-bit value: Total time to insert N nonexisting keys
Linear time from zero ⟶ N keys 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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 400,000 800,000 1,200,000 1,600,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.29 1.69 1.00 1.15 1.77 6.19 1.85 1.38 1.28 1.28 1.15 2.11 1.08 7.72 1.27 64-bit integer key, 448-bit value: Insert nonexisting 2.44 1.39 1.47 2.34 2.18 4.84 2.77 1.60 1.41 1.00 2.51 1.43 1.27 4.38 1.73 16-char c-string key, 64-bit value: Insert nonexisting 1.55 1.75 1.44 1.94 2.53 2.81 1.51 1.98 1.92 1.00 2.13 1.20 1.72 2.82 1.61 32-bit integer key, 32-bit value: Erase existing 2.03✝ 3.23 1.24✝ 1.25✝ 1.69 14.98 3.07 1.62 1.18✝ 1.22✝ 1.00✝ 6.24✝ 4.98 12.66 1.60 64-bit integer key, 448-bit value: Erase existing 2.42✝ 2.74 1.73✝ 1.88✝ 2.75 14.39 5.53 2.04 1.28✝ 1.00✝ 1.91✝ 5.24✝ 6.46 9.77 1.83 16-char c-string key, 64-bit value: Erase existing 1.24✝ 1.47 1.07✝ 1.06✝ 1.30 3.26 1.82 1.11 1.23✝ 1.00✝ 1.27✝ 2.01✝ 4.88 2.74 1.11 32-bit integer key, 32-bit value: Replace existing 1.40 1.82 1.55 1.41 1.22 3.95 2.26 1.31 1.43 1.60 1.00 3.37 1.46 6.49 1.33 64-bit integer key, 448-bit value: Replace existing 1.82 1.51 2.00 1.85 2.09 3.72 2.62 1.79 1.85 1.00 1.98 2.40 2.02 5.00 2.11 16-char c-string key, 64-bit value: Replace existing 1.05 1.03 1.01 1.02 1.15 1.55 1.44 1.03 1.22 1.00 1.23 1.13 1.15 1.66 1.03 32-bit integer key, 32-bit value: Erase nonexisting 1.42 2.66 1.00 1.34 2.54 10.07 3.51 1.85 3.17 3.57 3.40 7.17 3.80 8.88 1.83 64-bit integer key, 448-bit value: Erase nonexisting 1.55 2.41 1.00 1.27 3.55 9.96 5.27 1.66 3.30 3.10 7.00 5.83 3.79 7.38 1.56 16-char c-string key, 64-bit value: Erase nonexisting 1.08 1.24 1.00 1.03 1.89 2.41 2.07 1.05 2.47 1.65 2.63 2.11 2.14 2.32 1.04 32-bit integer key, 32-bit value: Look up existing 1.45 1.33 1.27 1.30 1.26 3.48 1.68 1.24 1.41 1.11 1.00 2.86 1.33 4.66 1.21 64-bit integer key, 448-bit value: Look up existing 2.12 1.31 2.01 2.00 2.48 4.13 2.52 1.88 2.25 1.00 2.15 2.40 2.39 4.28 1.60 16-char c-string key, 64-bit value: Look up existing 1.06 1.01 1.06 1.03 1.22 1.60 1.52 1.03 1.31 1.00 1.30 1.12 1.24 1.56 1.02 32-bit integer key, 32-bit value: Look up nonexisting 1.10 1.67 1.00 1.19 2.00 6.51 2.63 1.46 2.42 2.79 2.79 5.35 2.89 7.02 1.46 64-bit integer key, 448-bit value: Look up nonexisting 1.26 1.63 1.00 1.15 2.85 6.60 4.03 1.35 2.56 2.41 5.61 4.36 3.46 6.02 1.27 16-char c-string key, 64-bit value: Look up nonexisting 1.05 1.29 1.10 1.14 1.63 2.36 1.99 1.01 2.35 1.59 2.87 2.02 2.09 2.26 1.00 32-bit integer key, 32-bit value: Iterate 4.45 1.00 2.63 2.84 7.54 64.39 5.82 4.60 7.24 12.10 5.73 1.34 5.34 34.01 3.85 64-bit integer key, 448-bit value: Iterate 2.14 1.00 2.00 1.98 2.61 26.08 2.26 2.19 2.28 4.51 2.16 1.28 1.87 11.17 1.94 16-char c-string key, 64-bit value: Iterate 3.29 1.00 2.19 2.44 5.35 63.48 4.71 3.73 5.53 11.17 4.60 1.09 3.96 28.03 2.65 ✝ Relies on tombstones or a tombstone-like mechanism