cpython/Objects
Raymond Hettinger a35adf5b09 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.
2013-09-02 03:23:21 -07:00
..
stringlib Issue #18701: Remove support of old CPython versions (<3.0) from C code. 2013-08-17 00:48:02 +03:00
abstract.c Issue #18783: Removed existing mentions of Python long type in docstrings, 2013-08-27 20:17:03 +03:00
accu.c Issue #14387: Do not include accu.h from Python.h. 2012-03-22 14:38:16 +01:00
boolobject.c
bytearrayobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
bytes_methods.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
bytesobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
capsule.c
cellobject.c
classobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
codeobject.c Issue #15456: Fix code __sizeof__ after #12399 change. 2012-07-26 22:23:23 +02:00
complexobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
descrobject.c Use Py_intptr_t to store the difference between two pointers, instead of int 2013-05-08 00:44:15 +02:00
dictnotes.txt Issue #15055: update dictnotes.txt. Patch by Mark Shannon. 2012-06-24 21:03:45 +02:00
dictobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
enumobject.c Issue #14288: Serialization support for builtin iterators. 2012-04-03 10:49:41 +00:00
exceptions.c Issue #15767: back out 8a0ed9f63c6e, finishing the removal of 2013-07-04 17:51:50 -04:00
fileobject.c Issue #18783: Removed existing mentions of Python long type in docstrings, 2013-08-27 20:17:03 +03:00
floatobject.c Issue #18783: Removed existing mentions of Python long type in docstrings, 2013-08-27 20:17:03 +03:00
frameobject.c Issue #17934: Add a clear() method to frame objects, to help clean up expensive details (local variables) and break reference cycles. 2013-08-05 23:26:40 +02:00
funcobject.c Issue #18520: Fix PyFunction_NewWithQualName() error handling 2013-07-22 23:04:55 +02:00
genobject.c Issue #17934: Add a clear() method to frame objects, to help clean up expensive details (local variables) and break reference cycles. 2013-08-05 23:26:40 +02:00
iterobject.c Close #17932: Fix an integer overflow issue on Windows 64-bit in iterators: 2013-06-04 23:02:46 +02:00
listobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
listsort.txt Various clarifications based on feedback & questions over the years. 2013-08-24 15:15:19 -05:00
lnotab_notes.txt
longobject.c Issue #18783: Removed existing mentions of Python long type in docstrings, 2013-08-27 20:17:03 +03:00
memoryobject.c Fix error messages. 2013-02-19 13:44:49 +01:00
methodobject.c Issue #18408: In debug mode, PyCFunction_Call() now checks if an exception was 2013-07-11 23:44:46 +02:00
moduleobject.c Issue #18214: Improve finalization of Python modules to avoid setting their globals to None, in most cases. 2013-07-31 23:14:08 +02:00
namespaceobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
object.c Restore changeset 5bd9db528aed (issue #18408) 2013-08-26 14:05:19 +02:00
obmalloc.c Issue #18408: Fix _PyMem_DebugRealloc() 2013-07-09 00:44:43 +02:00
rangeobject.c Issue #18783: Removed existing mentions of Python long type in docstrings, 2013-08-27 20:17:03 +03:00
setobject.c Instead of XORed indicies, switch to a hybrid of linear probing and open addressing. 2013-09-02 03:23:21 -07:00
sliceobject.c Issue #16451: Refactor to remove duplication between range and slice in slice index computations. 2012-11-17 19:18:10 +00:00
structseq.c Issue #18520: Add a new PyStructSequence_InitType2() function, same than 2013-07-22 22:24:54 +02:00
tupleobject.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
typeobject.c Restore changeset 5bd9db528aed (issue #18408) 2013-08-26 14:05:19 +02:00
typeslots.inc
typeslots.py
unicodectype.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
unicodeobject.c Close #18780: %-formatting now prints value for int subclasses with %d, %i, and %u codes. 2013-08-31 10:18:55 -07:00
unicodetype_db.h Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
weakrefobject.c Issue #17643: Add __callback__ attribute to weakref.ref. 2013-04-13 15:45:44 +01:00