Thanks you for supporting.

BTW, my patch doesn't include OrderedDict speedup. (I'll try it when
compact dict is merged.)

In case of Python 3, OrderedDict.move_to_end(key, last=False) can append
item at front.
So implementing OrderedDict based on compact dict is not so easy as
OrderedDict = dict.

My idea is using compact_array (described in PyPy blog) as ring, not fixed
capacity array.
It means one of these two:

a. dict has one additional word and support ring internally.
b. OrderedDict reimplements many APIs (iterating, resizing, etc...) to
support ring.

I like (a) because it's easier to implement and maintain.
But I don't know it can be in time for Python 3.6 beta.

On Thu, Aug 11, 2016 at 12:06 AM Maciej Fijalkowski <fij...@gmail.com>
wrote:

> Hello everyone.
>
> I did do only a cursory look on that one, but I would like to
> reiterate that this gives huge benefits in general and we measured
> nice speedups on pypy (where all the dicts are ordered forever):
>
> * you can essentially kill OrderedDict or make it almost OrderedDict =
> dict (in pypy it's a simple dict subclass that has one or two extra
> things that OrderedDict has in the API)
> * there are nice speedups
> * the C version of OrderedDict can be killed
> * it saves memory, on 64bit by quite a bit (not everyone stores more
> than 4bln items in a dictionary)
> * it solves the problem of tests relying on order in dictionaries
>
> In short, it has no downsides
>
> On Tue, Aug 9, 2016 at 3:12 PM, INADA Naoki <songofaca...@gmail.com>
> wrote:
> > Hi, devs.
> >
> > I've implemented compact and ordered dictionary [1], which PyPy
> > implemented in 2015 [2].
> >
> > Since it is my first large patch, I would like to have enough time for
> > review cycle by Python 3.6 beta1.
> >
> > Could someone review it?
> >
> > [1] http://bugs.python.org/issue27350
> > [2]
> https://morepypy.blogspot.jp/2015/01/faster-more-memory-efficient-and-more.html
> >
> > --
> > INADA Naoki  <songofaca...@gmail.com>
> > _______________________________________________
> > Python-Dev mailing list
> > Python-Dev@python.org
> > https://mail.python.org/mailman/listinfo/python-dev
> > Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/fijall%40gmail.com
>
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to