"Steve Holden" <st...@holdenweb.com> wrote in message
news:mailman.54.1292502247.6505.python-l...@python.org...
On 12/16/2010 5:44 AM, BartC wrote:
One these is 30% faster than the other. That's an appreciable
difference, which you can't really just dismiss.
shol...@lifeboy ~
$ python -m timeit -- "i = 1" "while True:" " i += 1" " if i ==
1000000: break"
10 loops, best of 3: 157 msec per loop
$ python -m timeit -- "i = 1" "while 1:" " i += 1" " if i ==
1000000: break"
10 loops, best of 3: 116 msec per loop
I used a single loop counting to 10 million, and the timings were roughly
2.5xx and 1.8xx seconds, on Python 2.5 (1.35 and 1.05 seconds inside a
function).
In terms of a more realistic function (admittedly still a little contrived,
as the loop would be written differently), I tried this:
def p2(n):
p=1
while True:
if n<=p: return p
p<<=1
return 0
for i in xrange(1000000):
x=p2(i)
p2() calculates the smallest power of 2 >= it's operand.
Using while True as shown, it took 3.4 seconds. Using While 1, it took 2.6
seconds (Python 2.5).
--
Bartc
--
http://mail.python.org/mailman/listinfo/python-list