[Python-Dev] Python 3.6 dict becomes compact and gets a private version; and keywords become ordered

Antoine Pitrou solipsis at pitrou.net
Thu Sep 15 09:46:40 EDT 2016


On Thu, 15 Sep 2016 07:08:50 -0600
Eric Snow <ericsnowcurrently at gmail.com> wrote:
> On Sep 15, 2016 06:06, "Serhiy Storchaka" <storchaka at gmail.com> wrote:
> > Python 3.5: 10 loops, best of 3: 33.5 msec per loop
> > Python 3.6: 10 loops, best of 3: 37.5 msec per loop
> >
> > These results look surprisingly and inexplicably to me. I expected that  
> even if there is some performance regression in the lookup or modifying
> operation, the iteration should not be slower.
> 
> My understanding is that the all-int-keys case is an outlier.  This is due
> to how ints hash, resulting in fewer collisions and a mostly
> insertion-ordered hash table.  Consequently, I'd expect the above
> microbenchmark to give roughly the same result between 3.5 and 3.6, which
> it did.

Dict iteration shouldn't have any dependence on collisions or insertion
order.  It's just a table scan, both in 3.5 and 3.6.

Regards

Antoine.




More information about the Python-Dev mailing list