vze4rx4y at verizon.net
Thu Sep 23 08:12:12 CEST 2004
> > in 2.4 common case string concatenation gets a big speed boost:
> > % python2.3 ~/local/bin/timeit.py -s 's=""' "s+='foo'"
> > 10000 loops, best of 3: 68.3 usec per loop
> > % python2.4 ~/local/bin/timeit.py -s 's=""' "s+='foo'"
> > 1000000 loops, best of 3: 0.855 usec per loop
> Ah. Am I correct to conclude that StringIO should either be rewritten
> concatenating strings, or be deprecated, or both?
Nope. StringIO correctly makes heavy use of the ''.join() idiom which is still
preferred += for reasons of portability and speed. The purpose of the +=
optimization was to make it less catastrophic in places where it does occur.
Guido was clear that ''.join() remains king.
I will submit a patch to tighten up the code in StringIO.write() which needs
localized variables and elimination of an unnecessary step.
More information about the Python-list