[Tutor] Why does counting to 20 million stress my computer? (original) (raw)
Dick Moores rdm at rcblue.com
Wed Jul 21 07:26:19 CEST 2004
- Previous message: [Tutor] Why does counting to 20 million stress my computer?
- Next message: [Tutor] Why does counting to 20 million stress my computer?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Alan Gauld wrote at 14:41 7/20/2004:
> So xrange is definitely quicker. Is it better to use xrange all the time in > place of range then ?
I haven't checked but my guess is that for small values range will be faster because it holds all the values in RAM and indexing will be faster than calculation. But if in doubt try it out... And tell us the result! Alan G.
Not sure if 1,000,000 and 10,000,000 are small values, but here's what I get: positive integer: 1 (that's 1,000,000) Counting using xrange().. 0 to 1000000 in 0.156 seconds!
positive integer: 10 Counting using xrange().. 0 to 10000000 in 1.485 seconds!
positive integer: 1 Counting using range().. 0 to 1000000 in 0.172 seconds!
positive integer: 10 Counting using range().. 0 to 10000000 in 1.766 seconds!
So xrange() has the edge.
I used this code, and switched from xrange() to range():
============================== import time
while True: # for exiting via ^C or ^D try: max = raw_input("positive integer: ") except (TypeError, EOFError): print "Bye." break if len(max) == 0: print "Hey, don't just hit Enter, type an integer first!" continue if max in ["q", "x"]: print "Bye." break try: max = int(max) * 1000000 + 1 except: print "That's not an integer!" continue if max <= 0: print "That's not a positive integer!" continue print "Counting using range().." tStart = time.time() for k in range(max): pass tEnd = time.time() print "0 to %d in %.3f seconds!" % (k, (tEnd - tStart))
Dick Moores
- Previous message: [Tutor] Why does counting to 20 million stress my computer?
- Next message: [Tutor] Why does counting to 20 million stress my computer?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]