[Python-Dev] cpython: hashtable.h now supports keys of any size

Serhiy Storchaka storchaka at gmail.com
Wed Mar 23 13:37:31 EDT 2016


On 21.03.16 23:01, victor.stinner wrote:
> https://hg.python.org/cpython/rev/aca4e9af1ca6
> changeset:   100640:aca4e9af1ca6
> user:        Victor Stinner <victor.stinner at gmail.com>
> date:        Mon Mar 21 22:00:58 2016 +0100
> summary:
>    hashtable.h now supports keys of any size
>
> Issue #26588: hashtable.h now supports keys of any size, not only
> sizeof(void*). It allows to support key larger than sizeof(void*), but also to
> use less memory for key smaller than sizeof(void*).

If key size is compile time constant, Py_MEMCPY() and memcpy() can be 
optimized in one machine instruction. If it is ht->key_size, it adds 
more overhead. These changes can have negative performance effect.

It can be eliminated if pass a compile time constant to 
_Py_HASHTABLE_ENTRY_READ_KEY() etc.



More information about the Python-Dev mailing list