Speed-up for loops
Stefan Behnel
stefan_ml at behnel.de
Thu Sep 2 09:25:10 EDT 2010
Tim Wintle, 02.09.2010 14:55:
> If you really need to optimise it then you can convert that module to
> cython by adding a cdef, and then compile it:
>
> cdef int i
> for i in xrange(imax):
> a = a + 10
> print a
>
> or you can write it in C it'll run a lot faster.
Just to get the context right here: a C implementation won't run even a tad
faster than the obvious Cython version, but both will run "a lot faster"
than the Python version.
Plus, if Cython knows that the imax value is small enough, it'll infer
"int" for the "i" variable automatically, so you won't need the "cdef"
annotation. It won't automatically do that for "a", though, as that might
break Python's unlimited integer semantics if "imax" and/or "a" are large
enough.
Stefan
More information about the Python-list
mailing list