On Thursday, August 22, 2013 6:21:13 AM UTC-7, John Cremona wrote:
>
> Then use srange() which yields Integers. 
>
> John 
>

The appropriate answer should be: use xsrange, unless you explicitly need 
the integers as a list. The extra memory footprint of srange will probably 
be detrimental to performance.  

except that it isn't uniformly the case:

sage: timeit("for i in xsrange(1000000): a=i")
5 loops, best of 3: 157 ms per loop
sage: timeit("for i in srange(1000000): a=i")
5 loops, best of 3: 179 ms per loop
sage: timeit("for i in xsrange(1000): a=i")
625 loops, best of 3: 226 µs per loop
sage: timeit("for i in srange(1000): a=i")
625 loops, best of 3: 219 µs per loop

so perhaps with a little more careful programming (cythonizing xsrange?)  
one might be able to get the appropriate advice to be the uniformly correct 
advice as well.

I haven't timed it, but there's a good chance that writing the looping in 
cython to use a straight C-int and converting that (once) to an Integer, or 
using the while loop, is faster than deal with the overhead from (x)srange, 
even if they were optimized.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to