[Python-checkins] python/dist/src/Doc/whatsnew whatsnew24.tex, 1.33, 1.34

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Sat Feb 14 13:34:48 EST 2004


Update of /cvsroot/python/python/dist/src/Doc/whatsnew
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv945/Doc/whatsnew

Modified Files:
	whatsnew24.tex 
Log Message:
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.



Index: whatsnew24.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/whatsnew/whatsnew24.tex,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** whatsnew24.tex	13 Feb 2004 21:50:27 -0000	1.33
--- whatsnew24.tex	14 Feb 2004 18:34:45 -0000	1.34
***************
*** 261,266 ****
  
  \item The machinery for growing and shrinking lists was optimized
!  for speed and for space efficiency.  Small lists (under six elements)
!  never over-allocate by more than one element.  Large lists do not
   over-allocate by more than 1/8th.  Appending and popping from lists
   now runs faster due to more efficient code paths and less frequent
--- 261,266 ----
  
  \item The machinery for growing and shrinking lists was optimized
!  for speed and for space efficiency.  Small lists (under eight elements)
!  never over-allocate by more than three elements.  Large lists do not
   over-allocate by more than 1/8th.  Appending and popping from lists
   now runs faster due to more efficient code paths and less frequent




More information about the Python-checkins mailing list