[Python-Dev] http://mail.python.org/pipermail/python-dev/2011-December/115172.html (original) (raw)

Jim Jewett jimjjewett at gmail.com
Mon Jan 2 02:23:16 CET 2012


On Sun, Jan 1, 2012 at 8:04 PM, Christian Heimes <lists at cheimes.de> wrote:

Am 02.01.2012 01:37, schrieb Jim Jewett:

Well, there is nothing wrong with switching to a different hash function after N collisions, rather than "in the first place".  The perturbation effectively does by shoving the high-order bits through the part of the hash that survives the mask.

Except that it won't work or slow down every lookup of missing keys? It's absolutely crucial that the lookup time is kept as fast as possible.

It will only slow down missing keys that themselves hit more than N collisions.

Or were you assuming that I meant to switch the whole table, rather than just that one key? I agree that wouldn't work.

You can't just change the hash algorithm in the middle of the work without a speed impact on lookups.

Right -- but there is nothing wrong with modifying the lookdict (and insert_clean) functions to do something different after the Nth collision than they did after the N-1th.

-jJ



More information about the Python-Dev mailing list