>> With the help of an awesome python community I have been able to pick up the

>> language and now willing to explore other cool extensions of it.
>
>Good work!
>
>>
>> I routinely have large loops which could be ported to cython for speed.
>> However I have never written a single line of cython code. Any pointers on
>> getting started.
>
>There are two reasons for using cython:
>1) To interface directly with existing C libraries.
>2) To speed up CPU-intensive code.
>
>It sounds like you're interested in case 2). However, not all loops
>benefit from cythonisation. Loosely cython is good when
>a) you're doing something that can be written in a small amount of
>efficient C code
>b) but the corresponding Python code involves a lot of repeated
>function calls or expression evaluations.
>
>If you're already familiar with C then you'll probably have some idea
>when a) and b) apply. I would say that a prerequisite for learning to
>speed up CPU-intensive code with cython would be learning to use the
>python profilers. In particular you should learn to use cProfile and
>timeit:

(and of course pstats)

I recently used Cython for the first time and I found it surprisingly easy. The 
installation under Linux
is easy, but seems to be not really trivial under Windows (I never tried 
installing it under windows though; I'd first try one of the unofficial 
binaries: http://www.lfd.uci.edu/~gohlke/pythonlibs/#cython). One gotcha that I 
only found out later: it is possible to generate an html report of your 
Cythonized code. The yellower the code is coloured, the more it might still 
benefit from speed improvements: 
http://stackoverflow.com/questions/11058933/cython-a-flag-to-generate-yellow-shaded-html-without-command-line

It's pretty cool to use cProfile to make a Cython-Python comparison of the 
function you're trying to speed up. In my case it was 87 % faster IIRC (this 
difference was not only significant, but also relevent: a use case where this 
would save 15 minutes is totally realistic) . Yaay!

Albert-Jan
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to