[Python-Dev] Usage of += on strings in loops in stdlib
Steven D'Aprano
steve at pearwood.info
Wed Feb 13 12:53:25 CET 2013
On 13/02/13 20:09, Chris Withers wrote:
> On 12/02/2013 21:03, Maciej Fijalkowski wrote:
>> We recently encountered a performance issue in stdlib for pypy. It
>> turned out that someone commited a performance "fix" that uses += for
>> strings instead of "".join() that was there before.
>
> That's... interesting.
>
> I fixed a performance bug in httplib some years ago by doing the exact opposite; += -> ''.join(). In that case, it changed downloading a file from 20 minutes to 3 seconds. That was likely on Python 2.5.
I remember it well.
http://mail.python.org/pipermail/python-dev/2009-August/091125.html
I frequently link to this thread as an example of just how bad repeated string concatenation can be, how painful it can be to debug, and how even when the optimization is fast on one system, it may fail and be slow on another system.
--
Steven
More information about the Python-Dev
mailing list