Speed-up for loops
__peter__ at web.de
Thu Sep 2 21:13:24 CEST 2010
Philip Bloom wrote:
> a= a+10
> print a
> I suspect you will find it is way faster than using range or xrange for
> large numbers and map far more closely in the final result to what you
> are doing on matlab's side. At least last I checked, xrange and range
> both involve iterating through an array, which is much slower in all
> cases than just doing an int vs int compare (which is what your matlab
> is doing).
How did you check?
$ python -m timeit "for i in xrange(1000000): pass"
10 loops, best of 3: 47.5 msec per loop
$ python -m timeit "i = 0" "while i < 1000000: i += 1"
10 loops, best of 3: 152 msec per loop
So an empty while loop takes about three times as long as the equivalent for
| xrange([start,] stop[, step]) -> xrange object
| Like range(), but instead of returning a list, returns an object that
| generates the numbers in the range on demand. For looping, this is
| slightly faster than range() and more memory efficient.
More information about the Python-list