[Python-Dev] Usage of += on strings in loops in stdlib (original) (raw)

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