range question, compared to Smalltalk

Frank Buss fb at frank-buss.de
Wed Aug 28 12:13:40 EDT 2002


"Bjorn Pettersen" <BPettersen at NAREX.com> wrote:

> That, of course, depends <wink>. On my machine range is faster for lists
> up to ~1500 items and comparable to xrange up to ~17000 items... Test
> program below.

Do you know the german saying "Wer misst misst Mist" (who measures 
measures muck) ? :-)

Looks like it's highly optimized for loops and I can use it for this 
purpose.  But lets try this code:

import time
import random
rstart = time.clock()
for count in xrange(1, 10000): random.choice(range(count))
rtime = time.clock() - rstart
xstart = time.clock()
for count in xrange(1, 10000): random.choice(xrange(count))
xtime = time.clock() - xstart
if rtime < xtime:
  winner = 'range'
else:
  winner = 'xrange'
print '%8d %.3f %.3f %15s' % (count, rtime, xtime, winner)

The output on my computer:

9999 2.872 0.183          xrange

So xrange is 15 times faster than range for this example.

-- 
Frank Buß, fb at frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de



More information about the Python-list mailing list