-
Notifications
You must be signed in to change notification settings - Fork 0
/
map_decay.txt
99 lines (85 loc) · 14.7 KB
/
map_decay.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
16
16
1
1
absl::container_internal::node_handle<absl::container_internal::set_params<unsigned char, std::less<unsigned char>, std::allocator<unsigned char>, 256, false>, absl::container_internal::set_params<unsigned char, std::less<unsigned char>, std::allocator<unsigned char>, 256, false>, std::allocator<unsigned char>, void> size 3
absl::container_internal::node_handle<absl::container_internal::set_params<unsigned short, std::less<unsigned short>, std::allocator<unsigned short>, 256, false>, absl::container_internal::set_params<unsigned short, std::less<unsigned short>, std::allocator<unsigned short>, 256, false>, std::allocator<unsigned short>, void> size 4
absl::container_internal::node_handle<absl::container_internal::set_params<unsigned int, std::less<unsigned int>, std::allocator<unsigned int>, 256, false>, absl::container_internal::set_params<unsigned int, std::less<unsigned int>, std::allocator<unsigned int>, 256, false>, std::allocator<unsigned int>, void> size 8
absl::container_internal::node_handle<absl::container_internal::set_params<unsigned long, std::less<unsigned long>, std::allocator<unsigned long>, 256, false>, absl::container_internal::set_params<unsigned long, std::less<unsigned long>, std::allocator<unsigned long>, 256, false>, std::allocator<unsigned long>, void> size 16
phmap::priv::node_handle<phmap::priv::FlatHashSetPolicy<unsigned char>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashSetPolicy<unsigned char>, void>, std::allocator<unsigned char>, void> size 3
phmap::priv::node_handle<phmap::priv::FlatHashSetPolicy<unsigned short>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashSetPolicy<unsigned short>, void>, std::allocator<unsigned short>, void> size 4
phmap::priv::node_handle<phmap::priv::FlatHashSetPolicy<unsigned int>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashSetPolicy<unsigned int>, void>, std::allocator<unsigned int>, void> size 8
phmap::priv::node_handle<phmap::priv::FlatHashSetPolicy<unsigned long>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashSetPolicy<unsigned long>, void>, std::allocator<unsigned long>, void> size 16
absl::container_internal::node_handle<absl::container_internal::FlatHashSetPolicy<unsigned char>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashSetPolicy<unsigned char>, void>, std::allocator<unsigned char>, void> size 3
absl::container_internal::node_handle<absl::container_internal::FlatHashSetPolicy<unsigned short>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashSetPolicy<unsigned short>, void>, std::allocator<unsigned short>, void> size 4
absl::container_internal::node_handle<absl::container_internal::FlatHashSetPolicy<unsigned int>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashSetPolicy<unsigned int>, void>, std::allocator<unsigned int>, void> size 8
absl::container_internal::node_handle<absl::container_internal::FlatHashSetPolicy<unsigned long>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashSetPolicy<unsigned long>, void>, std::allocator<unsigned long>, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashSetPolicy<unsigned char>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashSetPolicy<unsigned char>, void>, std::allocator<unsigned char>, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashSetPolicy<unsigned short>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashSetPolicy<unsigned short>, void>, std::allocator<unsigned short>, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashSetPolicy<unsigned int>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashSetPolicy<unsigned int>, void>, std::allocator<unsigned int>, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashSetPolicy<unsigned long>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashSetPolicy<unsigned long>, void>, std::allocator<unsigned long>, void> size 16
phmap::priv::node_handle<phmap::priv::FlatHashMapPolicy<unsigned char, unsigned char>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashMapPolicy<unsigned char, unsigned char>, void>, std::allocator<std::pair<unsigned char const, unsigned char> >, void> size 4
phmap::priv::node_handle<phmap::priv::FlatHashMapPolicy<unsigned short, unsigned short>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashMapPolicy<unsigned short, unsigned short>, void>, std::allocator<std::pair<unsigned short const, unsigned short> >, void> size 6
phmap::priv::node_handle<phmap::priv::FlatHashMapPolicy<unsigned int, unsigned int>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashMapPolicy<unsigned int, unsigned int>, void>, std::allocator<std::pair<unsigned int const, unsigned int> >, void> size 12
phmap::priv::node_handle<phmap::priv::FlatHashMapPolicy<unsigned long, unsigned long>, phmap::priv::hash_policy_traits<phmap::priv::FlatHashMapPolicy<unsigned long, unsigned long>, void>, std::allocator<std::pair<unsigned long const, unsigned long> >, void> size 24
absl::container_internal::node_handle<absl::container_internal::map_params<unsigned char, unsigned char, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, unsigned char> >, 256, false>, absl::container_internal::map_params<unsigned char, unsigned char, std::less<unsigned char>, std::allocator<std::pair<unsigned char const, unsigned char> >, 256, false>, std::allocator<std::pair<unsigned char const, unsigned char> >, void> size 4
absl::container_internal::node_handle<absl::container_internal::map_params<unsigned short, unsigned short, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, unsigned short> >, 256, false>, absl::container_internal::map_params<unsigned short, unsigned short, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, unsigned short> >, 256, false>, std::allocator<std::pair<unsigned short const, unsigned short> >, void> size 6
absl::container_internal::node_handle<absl::container_internal::map_params<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> >, 256, false>, absl::container_internal::map_params<unsigned int, unsigned int, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, unsigned int> >, 256, false>, std::allocator<std::pair<unsigned int const, unsigned int> >, void> size 12
absl::container_internal::node_handle<absl::container_internal::map_params<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> >, 256, false>, absl::container_internal::map_params<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> >, 256, false>, std::allocator<std::pair<unsigned long const, unsigned long> >, void> size 24
absl::container_internal::node_handle<absl::container_internal::FlatHashMapPolicy<unsigned char, unsigned char>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashMapPolicy<unsigned char, unsigned char>, void>, std::allocator<std::pair<unsigned char const, unsigned char> >, void> size 4
absl::container_internal::node_handle<absl::container_internal::FlatHashMapPolicy<unsigned short, unsigned short>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashMapPolicy<unsigned short, unsigned short>, void>, std::allocator<std::pair<unsigned short const, unsigned short> >, void> size 6
absl::container_internal::node_handle<absl::container_internal::FlatHashMapPolicy<unsigned int, unsigned int>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashMapPolicy<unsigned int, unsigned int>, void>, std::allocator<std::pair<unsigned int const, unsigned int> >, void> size 12
absl::container_internal::node_handle<absl::container_internal::FlatHashMapPolicy<unsigned long, unsigned long>, absl::container_internal::hash_policy_traits<absl::container_internal::FlatHashMapPolicy<unsigned long, unsigned long>, void>, std::allocator<std::pair<unsigned long const, unsigned long> >, void> size 24
absl::container_internal::node_handle<absl::container_internal::NodeHashMapPolicy<unsigned char, unsigned char>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashMapPolicy<unsigned char, unsigned char>, void>, std::allocator<std::pair<unsigned char const, unsigned char> >, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashMapPolicy<unsigned short, unsigned short>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashMapPolicy<unsigned short, unsigned short>, void>, std::allocator<std::pair<unsigned short const, unsigned short> >, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashMapPolicy<unsigned int, unsigned int>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashMapPolicy<unsigned int, unsigned int>, void>, std::allocator<std::pair<unsigned int const, unsigned int> >, void> size 16
absl::container_internal::node_handle<absl::container_internal::NodeHashMapPolicy<unsigned long, unsigned long>, absl::container_internal::hash_policy_traits<absl::container_internal::NodeHashMapPolicy<unsigned long, unsigned long>, void>, std::allocator<std::pair<unsigned long const, unsigned long> >, void> size 16
ska::flat_hash_set<unsigned char, std::hash<unsigned char>, std::equal_to<unsigned char>, std::allocator<unsigned char> > size 1
ska::flat_hash_set<unsigned short, std::hash<unsigned short>, std::equal_to<unsigned short>, std::allocator<unsigned short> > size 2
ska::flat_hash_set<unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<unsigned int> > size 4
ska::flat_hash_set<unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<unsigned long> > size 8
ska::flat_hash_map<unsigned char, unsigned char, std::hash<unsigned char>, std::equal_to<unsigned char>, std::allocator<std::pair<unsigned char, unsigned char> > > size 2
ska::flat_hash_map<unsigned short, unsigned short, std::hash<unsigned short>, std::equal_to<unsigned short>, std::allocator<std::pair<unsigned short, unsigned short> > > size 4
ska::flat_hash_map<unsigned int, unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > > size 8
ska::flat_hash_map<unsigned long, unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > size 16
ska::unordered_set<unsigned char, std::hash<unsigned char>, std::equal_to<unsigned char>, std::allocator<unsigned char> > size 1
ska::unordered_set<unsigned short, std::hash<unsigned short>, std::equal_to<unsigned short>, std::allocator<unsigned short> > size 2
ska::unordered_set<unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<unsigned int> > size 4
ska::unordered_set<unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<unsigned long> > size 8
ska::unordered_map<unsigned char, unsigned char, std::hash<unsigned char>, std::equal_to<unsigned char>, std::allocator<std::pair<unsigned char, unsigned char> > > size 2
ska::unordered_map<unsigned short, unsigned short, std::hash<unsigned short>, std::equal_to<unsigned short>, std::allocator<std::pair<unsigned short, unsigned short> > > size 4
ska::unordered_map<unsigned int, unsigned int, std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> > > size 8
ska::unordered_map<unsigned long, unsigned long, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long, unsigned long> > > size 16
std::_Node_handle<unsigned char, unsigned char, std::allocator<std::__detail::_Hash_node<unsigned char, false> > > size 8
std::_Node_handle<unsigned short, unsigned short, std::allocator<std::__detail::_Hash_node<unsigned short, false> > > size 8
std::_Node_handle<unsigned int, unsigned int, std::allocator<std::__detail::_Hash_node<unsigned int, false> > > size 8
std::_Node_handle<unsigned long, unsigned long, std::allocator<std::__detail::_Hash_node<unsigned long, false> > > size 8
std::_Node_handle<unsigned char, std::pair<unsigned char const, unsigned char>, std::allocator<std::__detail::_Hash_node<std::pair<unsigned char const, unsigned char>, false> > > size 24
std::_Node_handle<unsigned short, std::pair<unsigned short const, unsigned short>, std::allocator<std::__detail::_Hash_node<std::pair<unsigned short const, unsigned short>, false> > > size 24
std::_Node_handle<unsigned int, std::pair<unsigned int const, unsigned int>, std::allocator<std::__detail::_Hash_node<std::pair<unsigned int const, unsigned int>, false> > > size 24
std::_Node_handle<unsigned long, std::pair<unsigned long const, unsigned long>, std::allocator<std::__detail::_Hash_node<std::pair<unsigned long const, unsigned long>, false> > > size 24
2023-06-11T21:36:09+08:00
Running ./bin/map_decay
Run on (8 X 2904 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x8)
L1 Instruction 32 KiB (x8)
L2 Unified 256 KiB (x8)
L3 Unified 16384 KiB (x1)
Load Average: 4.05, 4.41, 3.34
-----------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-----------------------------------------------------------------------------------------------
BM_unmap<std::unordered_map<int, int>> 406872 ns 404474 ns 1750
BM_decay_map<std::unordered_map<int, int, Hasher>> 110507912 ns 109843888 ns 6
BM_unmap<ska::unordered_map<int, int>> 478618 ns 475709 ns 1448
BM_decay_map<ska::unordered_map<int, int, Hasher>> 76050814 ns 75583835 ns 9
BM_unmap<ska::flat_hash_map<int, int>> 215306 ns 213970 ns 3577
BM_unmap<phmap::flat_hash_map<int, int>> 143211 ns 142212 ns 5562
BM_decay_map<phmap::flat_hash_map<int, int, Hasher>> 40919873 ns 41783942 ns 17
BM_unmap<absl::flat_hash_map<int, int>> 150473 ns 153027 ns 4874
BM_decay_map<absl::flat_hash_map<int, int, Hasher>> 40154086 ns 40731944 ns 17
BM_unmap<tsl::ordered_map<int, int>> 135256 ns 136728 ns 4621
BM_decay_map<tsl::ordered_map<int, int, Hasher>> 105496554 ns 106600562 ns 6
BM_unmap<tsl::vector_map<int, int>> 98403 ns 99210 ns 7553
BM_decay_map<tsl::vector_map<int, int, Hasher>> 73413551 ns 73959532 ns 10