Dict Evolution
Python2.7 - Scambled (dict_size = 280)
Python3.5 - Randomized (Key sharing dictionaries, dict_size = 196)
Python3.6 - Ordered (Compact dictionaries, dict_size = 112)
-
Databases
-
Association Lists
-
Separate Chaining
-
separate_chaining(2)
-
separate_chaining(4)
-
separate_chaining(8) (remove collisions, but wasted space due to over allocations for lists to grow)
-
-
Open Addressing - Can have catatrophic collision wherever every item hash to same value
-
Multiple Hashing
-
Key-Sharing Dict
-
Compact Dict
-
Use a list to store the lookups
-
This list can be read in very less cache-line
-
Use a dirty bit for lookup in the dictionary
-