Settings
KEY_COUNT: 200000
KEY_COUNT_MEASUREMENT_INTERVAL: 500
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
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Total time to insert N nonexisting keys
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
32-bit integer key, 32-bit value: Time to erase 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
64-bit integer key, 448-bit value: Time to erase 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Time to erase 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
32-bit integer key, 32-bit value: Time to replace 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
64-bit integer key, 448-bit value: Time to replace 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Time to replace 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
32-bit integer key, 32-bit value: Time to erase 1,000 nonexisting keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
64-bit integer key, 448-bit value: Time to erase 1,000 nonexisting keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Time to erase 1,000 nonexisting keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Time to look up 1,000 existing keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 1,000 nonexisting keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 1,000 nonexisting keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Time to look up 1,000 nonexisting keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 5,000 keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 5,000 keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
Linear time from zero ⟶
N keys
40,000
80,000
120,000
160,000
16-char c-string key, 64-bit value: Time to iterate over 5,000 keys with N keys in the map
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
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 is better)
ankerl
absl
boost
ska
std
tsl
CC
STC
klib
M*LIB
stb_ds
uthash
Verstable
32-bit integer key, 32-bit value:
Insert nonexisting
1.77
1.15
1.00
2.43
4.66
2.18
1.84
1.59
1.64
1.56
2.24
6.84
1.94
64-bit integer key, 448-bit value:
Insert nonexisting
1.53
1.18
1.00
2.30
4.45
2.91
1.62
1.69
1.27
2.20
1.60
4.80
1.61
16-char c-string key, 64-bit value:
Insert nonexisting
1.32
1.13
1.00
1.77
2.08
1.31
1.46
1.51
1.63
1.83
1.15
2.50
1.38
32-bit integer key, 32-bit value:
Erase existing
3.91
1.58
1.00
1.84
6.29
3.12
1.56
5.39
1.37
1.20
5.45
6.88
1.60
64-bit integer key, 448-bit value:
Erase existing
2.71
1.69
1.21
1.91
6.22
3.58
1.49
4.76
1.00
1.50
4.29
4.74
1.54
16-char c-string key, 64-bit value:
Erase existing
1.67
1.23
1.00
1.33
2.38
1.83
1.09
4.51
1.14
1.12
2.12
2.37
1.07
32-bit integer key, 32-bit value:
Replace existing
1.98
1.00
1.06
1.39
3.77
1.79
1.18
1.54
1.67
1.35
2.71
3.99
1.17
64-bit integer key, 448-bit value:
Replace existing
1.23
1.12
1.25
1.40
2.91
1.74
1.19
1.45
1.00
1.79
1.73
2.24
1.18
16-char c-string key, 64-bit value:
Replace existing
1.05
1.00
1.01
1.11
1.63
1.39
1.07
1.09
1.12
1.09
1.17
1.54
1.08
32-bit integer key, 32-bit value:
Erase nonexisting
2.55
1.35
1.00
2.28
6.42
2.97
1.98
3.60
3.10
3.35
4.85
6.48
1.96
64-bit integer key, 448-bit value:
Erase nonexisting
2.29
1.42
1.00
2.78
8.93
4.54
1.82
3.60
2.77
5.68
4.37
6.33
1.84
16-char c-string key, 64-bit value:
Erase nonexisting
1.18
1.10
1.02
1.52
2.20
1.81
1.03
1.75
2.07
2.20
1.64
2.01
1.00
32-bit integer key, 32-bit value:
Look up existing
1.92
1.13
1.00
1.45
3.70
2.05
1.26
1.57
1.69
1.49
2.83
4.07
1.20
64-bit integer key, 448-bit value:
Look up existing
1.07
1.18
1.11
1.34
2.97
1.71
1.08
1.32
1.43
1.51
1.68
2.24
1.00
16-char c-string key, 64-bit value:
Look up existing
1.00
1.08
1.02
1.12
1.60
1.35
1.04
1.24
1.21
1.14
1.26
1.57
1.04
32-bit integer key, 32-bit value:
Look up nonexisting
4.05
3.80
2.80
6.36
17.55
8.37
5.52
9.96
8.44
1.00
12.83
18.23
5.54
64-bit integer key, 448-bit value:
Look up nonexisting
4.15
3.95
3.64
8.01
25.23
12.62
5.30
10.17
7.74
1.00
12.11
18.54
5.12
16-char c-string key, 64-bit value:
Look up nonexisting
30.96
30.06
27.33
41.30
58.98
47.97
28.43
46.75
53.70
1.00
44.10
52.79
27.44
32-bit integer key, 32-bit value:
Iterate
1.00
6.11
3.56
10.08
15.97
8.02
6.46
7.66
9.54
9.28
1.41
11.18
5.22
64-bit integer key, 448-bit value:
Iterate
1.00
1.97
1.83
3.10
9.20
2.85
2.17
2.14
2.63
3.08
1.20
4.27
1.97
16-char c-string key, 64-bit value:
Iterate
1.00
3.24
2.30
5.75
19.05
4.84
3.59
4.17
4.95
4.92
1.16
6.72
2.86