[Python-ideas] Ordered storage of keyword arguments
Antoine Pitrou
solipsis at pitrou.net
Thu Oct 28 20:06:05 CEST 2010
On Thu, 28 Oct 2010 19:58:59 +0200
spir <denis.spir at gmail.com> wrote:
> On Thu, 28 Oct 2010 07:58:08 -0700
> Guido van Rossum <guido at python.org> wrote:
>
> > Let's see if someone can come up with an ordereddict implemented in C
> > first and then benchmark the hell out of it.
> >
> > Once its performance is acceptable we can talk about using it for
> > keyword args, class dicts, or even make it the one and only dict
> > object -- but the latter would be a really high bar to pass.
> >
>
> What does the current implementation use as buckets?
It uses an open addressing strategy. Each dict entry holds three
pointer-sized fields: key object, value object, and cached hash value
of the key.
(set entries have only two fields, since they don't hold a value object)
You'll find details in Include/dictobject.h and Objects/dictobject.c.
Regards
Antoine.
More information about the Python-ideas
mailing list