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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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
absl
ankerl
boost
emilib2
ska
std
tsl
CC
khash
DICT
DICT_OA
stb_ds
STC
uthash
Verstable
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