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