[Python-Dev] Usage of += on strings in loops in stdlib

Maciej Fijalkowski fijall at gmail.com
Tue Feb 12 22:25:49 CET 2013


On Tue, Feb 12, 2013 at 11:16 PM, Brett Cannon <brett at python.org> wrote:
>
>
>
> On Tue, Feb 12, 2013 at 4:06 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
>>
>>
>> Hi !
>>
>> On Tue, 12 Feb 2013 23:03:04 +0200
>> Maciej Fijalkowski <fijall at gmail.com> 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.
>> >
>> > Now this hurts pypy (we can mitigate it to some degree though) and
>> > possible Jython and IronPython too.
>> >
>> > How people feel about generally not having += on long strings in
>> > stdlib (since the refcount = 1 thing is a hack)?
>>
>> I agree that += should not be used as an optimization (on strings) in
>> the stdlib code. The optimization is there so that uncareful code does
>> not degenerate, but deliberately relying on it is a bit devilish.
>> (optimisare diabolicum :-))
>
>
> Ditto from me. If you're going so far as to want to optimize Python code
> then you probably are going to care enough to accelerate it in C, in which
> case you can leave the Python code idiomatic.
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/fijall%40gmail.com
>

I should actually reference the original CPython issue
http://bugs.python.org/issue1285086


More information about the Python-Dev mailing list