PATCH: Speed up direct string concatenation by 20+%!
Carl Friedrich Bolz
cfbolz at gmx.de
Fri Sep 29 14:55:05 CEST 2006
Carl Friedrich Bolz wrote:
> Robin Becker wrote:
>> Larry Hastings wrote:
>>> THE PATCH
>>> The core concept: adding two strings together no longer returns a pure
>>> "string" object. Instead, it returns a "string concatenation" object
>>> which holds references to the two strings but does not actually
>>> them... yet. The strings are concatenated only when someone requests
>>> string's value, at which point it allocates all the space it needs and
>>> renders the concatenated string all at once.
>>> More to the point, if you add multiple strings together (a + b + c),
>>> it *doesn't* compute the intermediate strings (a + b).
>>> Upsides to this approach:
>> wouldn't this approach apply to other additions eg list+list seq+seq etc
> no, I think it depends on strings being immutable. If you do list1 +
> list2 that way and list1 is mutated then the resulting list would be
> changed too.
>> I suppose the utility of such an approach depends on the frequency with
>> which multiple strings/lists/sequences etc are added together in real
> I think there are quite a lot of string additions around, it's just that
> people get told to use join all the time, so they are not written using "+".
Sorry for the multiple post :-(
More information about the Python-list