[Python-Dev] patch: speed up name access by up to 80% (original) (raw)

Oren Tirosh oren-py-d@hishome.net
Tue, 12 Feb 2002 08:29:47 -0500


On Tue, Feb 12, 2002 at 12:40:11PM +0100, M.-A. Lemburg wrote:

* Inline small dictionary tables in the PyObject struct and only revert to external tables for larger ones. (I have an old patch for this one which you might want to update) * Optimize perfect hashings. Sometimes (hopefully most of the times) Python will generate a perfect hashing for a set of attributes. In that case, it could set a flag in the dictionary object to be able to use a faster lookup function.

Interesting, but I am exploring other directions now: attribute access, hints associated to negative entries that should speed up the next lookup in the chain and getting the inline/fast ratio from 3:1 up to 10:1 or higher.

BTW, could you run pybench against your patch ?

18331152 fastlocal non-dictionary lookups 416661 inline dictionary lookups 131509 fast dictionary lookups 200 slow dictionary lookups

With 97% of accesses using fastlocals it's not going to have any significant effect.

Oren