]> granicus.if.org Git - python/commit
Fine tune the speed/space trade-off for overallocating small lists.
authorRaymond Hettinger <python@rcn.com>
Sat, 14 Feb 2004 18:34:46 +0000 (18:34 +0000)
committerRaymond Hettinger <python@rcn.com>
Sat, 14 Feb 2004 18:34:46 +0000 (18:34 +0000)
commitab517d2eacba7fec5f31dd25b8e43dca678cda53
tree9c5c5930186f315128c6979e9159426b2825f7b2
parent2731ae4d6dbf887c698ba7e62590a4f27df62bb9
Fine tune the speed/space trade-off for overallocating small lists.

The Py2.3 approach overallocated small lists by up to 8 elements.
The last checkin would limited this to one but slowed down (by 20 to 30%)
the creation of small lists between 3 to 8 elements.

This tune-up balances the two, limiting overallocation to 3 elements
(significantly reducing space consumption from Py2.3) and running faster
than the previous checkin.

The first part of the growth pattern (0, 4, 8, 16) neatly meshes with
allocators that trigger data movement only when crossing a power of two
boundary.  Also, then even numbers mesh well with common data alignments.
Doc/whatsnew/whatsnew24.tex
Misc/NEWS
Objects/listobject.c