Tim Peters wrote: > > If anyone has an app known or suspected to be sensitive to dict timing, > please try the patch here. Best I've been able to tell, it's a win. But > it's a radical change in approach, so I don't want to rush it. > > This gets rid of the polynomial machinery entirely, along with the branches > associated with updating the things, and the dictobject struct member > holding the table's poly. Instead it relies on that > > i = (5*i + 1) % n > > is a full-period RNG whenever n is a power of 2 (that's what guarantees it > will visit every slot), but perturbs that by adding in a few bits from the > full hash code shifted right each time (that's what guarantees every bit of > the hash code eventually influences the probe sequence, avoiding simple > quadratic-time degenerate cases). Cool idea... rips out all that algebra garble and replaces it with random beauty :-) In any case, this will avoid use the trouble of having to check those poly numbers every time Intel decides to bump the register width by another factor of two ;-) -- Marc-Andre Lemburg CEO eGenix.com Software GmbH ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Software: http://www.lemburg.com/python/
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4