Steven D'Aprano <[EMAIL PROTECTED]> writes: > On Sat, 22 Oct 2005 14:54:24 -0400, Mike Meyer wrote: >>> The string formatting is two orders of magnitude faster than the >>> concatenation. The speed difference becomes even more obvious when you >>> increase the number of strings being concatenated: >> The test isn't right - the addition test case includes the time to >> convert the number into a char, including taking a modulo. > I wondered if anyone would pick up on that :-) > You are correct, however that only adds a constant amount of time to > the time it takes for each concatenation. That's why I talked about order > of magnitude differences. If you look at the vast increase in time taken > for concatenation when going from 10**5 to 10**6 iterations, that cannot > be blamed on the char conversion.
True. string addition is O(n^2); the conversion time is O(n). But fair's fair. > At least, that's what it looks like to me -- I'm perplexed by the *vast* > increase in speed in your version, far more than I would have predicted > from pulling out the char conversion. I can think of three > possibilities: Everything got faster, so it wasn't just pulling the chr conversion. > (1) Your PC is *hugely* faster than mine; It's a 3Ghz P4. > (2) Your value of x is a lot smaller than I was using (you don't actually > say what x you use); or It's still in the buffer, and I copied it from your timings: >>> x = 100000 > (3) You are using a version and/or implementation of Python that has a > different underlying implementation of string concatenation. I'm runing Python 2.4.1 built with GCC 3.4.2. <mike -- Mike Meyer <[EMAIL PROTECTED]> http://www.mired.org/home/mwm/ Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information. -- http://mail.python.org/mailman/listinfo/python-list