BartC wrote:
"Steve Holden" <st...@holdenweb.com> wrote in message news:mailman.462.1292214062.2649.python-l...@python.org...
On 12/12/2010 2:32 PM, Christian Heimes wrote:
Am 12.12.2010 19:31, schrieb Steve Holden:
$ python -m timeit -n20 -- "i = 0" "while 1:" "    i+=1" "    if i ==
1000000: break"
20 loops, best of 3: 89.7 msec per loop
$ python -m timeit -n20 -- "i = 0" "while True:" "    i+=1" "    if i ==
1000000: break"
20 loops, best of 3: 117 msec per loop

No argue with that! I was merely making a point that "while 1" executes
different byte code than "while True". Readability is important but
sometimes speed is of the essence. "while 1" is one of the few tricks to
speed up tight loops a bit.

OK, but the figures you quote save you 27.3 ms per million iterations,
for a grand total saving of 27.3 ns per iteration. So "a bit" is hardly
worth considering for most programs, is it?

One these is 30% faster than the other. That's an appreciable difference, which you can't really just dismiss.

Anecdotal evidence says it is easily dismissed:

I had a routine that processed records from a table using custom, on the fly, code. I could either use exec for each record to do the work, or create a function that would then be called. I timed exec vs function, and found the function style to be about 200% faster... Eureka!, I thought. After putting the functional method in place, a run that took about 16 minutes using the old exec method ran two (2!) seconds faster.

Great learning experience, for both the function method (which I prefer), and the need for profiling.


~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to