summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2013-09-02 03:23:21 -0700
committerRaymond Hettinger <python@rcn.com>2013-09-02 03:23:21 -0700
commita35adf5b0984758ddc64ced81cfac56fa15fd94a (patch)
treed6a2ae54e7b853d0e618909a96784c1b749ff19e /Python
parenta661f4531e2c8d189dc4a6c22ce74d2bfd18cbcd (diff)
downloadcpython-git-a35adf5b0984758ddc64ced81cfac56fa15fd94a.tar.gz
Instead of XORed indicies, switch to a hybrid of linear probing and open addressing.
Modern processors tend to make consecutive memory accesses cheaper than random probes into memory. Small sets can fit into L1 cache, so they get less benefit. But they do come out ahead because the consecutive probes don't probe the same key more than once and because the randomization step occurs less frequently (or not at all). For the open addressing step, putting the perturb shift before the index calculation gets the upper bits into play sooner.
Diffstat (limited to 'Python')
0 files changed, 0 insertions, 0 deletions