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

Antoine Pitrou solipsis at pitrou.net
Wed Feb 13 08:16:21 CET 2013


On Wed, 13 Feb 2013 09:39:23 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> On 13 Feb 2013 07:08, "Maciej Fijalkowski" <fijall at gmail.com> wrote:
> >
> > Hi
> >
> > 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)?
> >
> > What about other performance improvements in stdlib that are
> > problematic for pypy or others?
> >
> > Personally I would like cleaner code in stdlib vs speeding up CPython.
> 
> For the specific case of "Don't rely on the fragile refcounting hack in
> CPython's string concatenation" I strongly agree. However, as a general
> principle, I can't agree until speed.python.org is a going concern and we
> can get a reasonable overview of any resulting performance implications.

Anybody can run the benchmark suite for himself, speed.p.o is
(fortunately) not a roadblock:
http://bugs.python.org/issue17170

Regards

Antoine.




More information about the Python-Dev mailing list