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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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
flat_umap
flat_wmap
boost
absl
folly
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