[Python-Dev] patch: speed up name access by up to 80%
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