This is a good post showing how “perrygeo” uses Cython to speed up a pure Python function. The comments also discuss alternatives and options:

- Using psyco instead of Cython
- Using optimization flags for gcc
- Using xxx instead of math.xxx

http://www.perrygeo.net/wordpress/?p=116

There are also the official Cython docs, and the Cython basic tutorial (hello world of cython)

## xxx instead of math.xxx

I tried a simple benchmark of math.cos versus cos()

import math from math import cos, pi import time as t ten_mill = 10000000 def do_mathcos(): print 'do math.cos' x = math.pi i = ten_mill t0 = t.time() while(i): x = math.cos(x) i -= 1 print t.time() - t0 def do_cos(): print 'do cos' x = pi i = ten_mill t0 = t.time() while(i): x = cos(x) i -= 1 print t.time() - t0 do_mathcos() do_cos() # OUTPUT: # do math.cos # 1.95301318169 # do cos # 1.49543499947 |

So about 25% speedup, just by using:

from math import cos # and calling cos() |

Instead of:

import math # and calling math.cos() |