On 12/12/2010 2:32 PM, Christian Heimes wrote: > Am 12.12.2010 19:31, schrieb Steve Holden: >> > Would you care to quantify how much CPU time that optimization will >> > typically save for a loop of fair magnitude (say, a billion iterations)? > The difference is minimal but measurable for very tight loops. > > $ 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 > > In Python 2.x the peep hole optimizer can't remove the global lookup and > check for trueness for "while True". > Yes, you said that already and I certainly didn't disagree.
[...] >> Python is designed to provide readable code. Writing >> > >> > while True: >> > ... >> > >> > is much more legible than its pre-True couterpart >> > >> > while 1: >> > ... > 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? regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 PyCon 2011 Atlanta March 9-17 http://us.pycon.org/ See Python Video! http://python.mirocommunity.org/ Holden Web LLC http://www.holdenweb.com/ -- http://mail.python.org/mailman/listinfo/python-list