Raymond Hettinger <raymond.hettin...@gmail.com> added the comment: What I've decided for now is to keep the freeslot reuse logic but in a simpler form. Currently there are two optimizations for rare cases. The first is reusing a dummy entry -- we'll keep that. And the second is detecting multiple dummies in a lookup chain and prefering the first in the chain -- I'm going to get rid of this I haven't found any plausible case where it demonstrates value in excess of its cost.
For it to trigger, the set has to have had a growth phase, then a number of subsequent deletions, and then later additions that have multiple collisions with dummy entries, all without any intervening resizes. Modern sets have a lower fill factor, making this situation even less likely. Also, modern sets use a series of linear probes making collisions much cheaper. The benefit is so small and so rare, it possible that the cost of the inner-loop test now exceeds its potential benefit. Given that the optimization is of questionable worth, I choose to remove it, preferring the simpler inner-loop code. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue29476> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com