Python Xrange
In python, using the range
function actually creates a list which it stores in memory. However, using xrange
just iterates through the numbers.
range(0,5000)
takes up more memory than xrange(0,5000)
Here is a quick example of what I mean:
range.py:
import sys
for i in range(0,int(sys.argv[1])):
pass
print " "
xrange.py:
import sys
for i in xrange(0,int(sys.argv[1])):
pass
print " "
[$] time python range.py 10000000
real 0m1.139s
user 0m0.911s
sys 0m0.228s
[$] time python xrange.py 10000000
real 0m0.506s
user 0m0.502s
sys 0m0.004s