From: Steven D'Aprano on
On Fri, 12 Mar 2010 13:40:23 +0000, MRAB wrote:

>> To be taken seriously, I think you need to compare stringchain to the
>> list idiom. If your benchmarks favourably compare to that, then it
>> might be worthwhile.
>>
> IIRC, someone did some work on making concatenation faster by delaying
> it until a certain threshold had been reached (in the string class
> implementation).

I believe you're talking about this patch:

http://bugs.python.org/issue1569040

It's never been formally rejected, but the chances of it being accepted
are pretty low.


However, in Python 2.4 another optimization was added that makes string
concatenation of the form:

a = a + b
a += b

much faster. This is implementation specific (Jython and IronPython don't
have it, and almost certainly won't) and it doesn't work for (e.g.):

a = b + a

See here:

http://mail.python.org/pipermail/python-dev/2004-August/046686.html
http://bugs.python.org/issue980695



--
Steven
From: Lie Ryan on
On 03/22/2010 07:07 PM, Steven D'Aprano wrote:
> Perhaps you should have said that it was a wrapper around deque giving
> richer functionality, rather than giving the impression that it was a
> brand new data structure invented by you. People are naturally going to
> be more skeptical about a newly invented data structure than one based on
> a reliable, component like deque.

Well, technically StringChain is not a data structure in the first
place. StringChain is a string; a string that is implemented using deque
data structure to make appending algorithmically efficient. It is not a
data structure, in the sense that I can't put arbitrary "thing" into the
data structure. In the same sense, "string" is also not a data structure
as "string" is an implementation of stream using "array" data structure;
"StringChain" is an implementation of stream using "deque" data structure.
 | 
Pages: 1
Prev: question regarding wxSlider
Next: building a dict