Settings
KEY_COUNT: 200000
KEY_COUNT_MEASUREMENT_INTERVAL: 500
RUN_COUNT: 14
DISCARDED_RUNS_COUNT: 4
MAX_LOAD_FACTOR: 0.875
APPROXIMATE_CACHE_SIZE: 25000000
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
32-char std-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: Total time to re-insert N nonexisting keys after erasing all
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
64-bit integer key, 448-bit value: Total time to re-insert N nonexisting keys after erasing all
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-char std-string key, 64-bit value: Total time to re-insert N nonexisting keys after erasing all
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-bit integer key, 32-bit value: Time to erase 500 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 500 existing keys with N keys in the table
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-char std-string key, 64-bit value: Time to erase 500 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 500 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 500 existing keys with N keys in the table
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-char std-string key, 64-bit value: Time to replace 500 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 500 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 500 existing keys with N keys in the table
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-char std-string key, 64-bit value: Time to look up 500 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 500 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 500 nonexisting keys with N keys in the table
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-char std-string key, 64-bit value: Time to look up 500 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 5000 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 5000 keys with N keys in the table
Linear time from zero ⟶ N keys 40,000 80,000 120,000 160,000
32-char std-string key, 64-bit value: Time to iterate over 5000 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) flat_umap flat_wmap boost absl folly 32-bit integer key, 32-bit value: Insert nonexisting 1.05 1.00 1.13 1.31 1.37 64-bit integer key, 448-bit value: Insert nonexisting 1.00 1.03 1.02 1.57 1.74 32-char std-string key, 64-bit value: Insert nonexisting 1.06 1.04 1.00 1.14 1.30 32-bit integer key, 32-bit value: Re-insert nonexisting 1.00 1.24 2.11 1.66 1.20 64-bit integer key, 448-bit value: Re-insert nonexisting 1.00 1.15 2.43 1.54 2.49 32-char std-string key, 64-bit value: Re-insert nonexisting 1.00 1.03 1.39 1.01 1.08 32-bit integer key, 32-bit value: Erase existing 1.17 1.03✝ 1.00✝ 1.35✝ 1.39 64-bit integer key, 448-bit value: Erase existing 1.26 1.00✝ 1.04✝ 1.21✝ 2.32 32-char std-string key, 64-bit value: Erase existing 1.07 1.00✝ 1.11✝ 1.20✝ 1.17 32-bit integer key, 32-bit value: Replace existing 1.22 1.10 1.00 1.21 1.39 64-bit integer key, 448-bit value: Replace existing 1.25 1.02 1.00 1.14 2.39 32-char std-string key, 64-bit value: Replace existing 1.00 1.09 1.43 1.22 1.33 32-bit integer key, 32-bit value: Look up existing 1.14 1.01 1.12 1.82 1.00 64-bit integer key, 448-bit value: Look up existing 1.34 1.00 1.21 1.68 1.43 32-char std-string key, 64-bit value: Look up existing 1.10 1.00 1.20 1.36 1.26 32-bit integer key, 32-bit value: Look up nonexisting 1.25 1.00 1.04 1.80 1.97 64-bit integer key, 448-bit value: Look up nonexisting 1.22 1.00 1.02 1.77 2.22 32-char std-string key, 64-bit value: Look up nonexisting 1.04 1.00 1.40 1.88 1.53 32-bit integer key, 32-bit value: Iterate 1.00 1.25 1.53 1.72 1.02 64-bit integer key, 448-bit value: Iterate 1.00 1.09 1.17 1.09 1.12 32-char std-string key, 64-bit value: Iterate 1.00 1.15 1.29 1.36 1.04 ✝ Relies on tombstones or a tombstone-like mechanism