hi, On Wednesday 13 May 2009 08:35:27 Robert Bradshaw wrote: > On May 12, 2009, at 9:47 PM, Mohamed Lrhazi wrote: > > On Wed, May 13, 2009 at 12:31 AM, Chris Colbert > > > > <[email protected]> wrote: > >> If your making lots of rapid calls to short running functions in the > >> C-library, then you may start to feel the ctypes overhead. > > > > That's what I was afraid to hear.. > > Hopefully after using Cython a bit, you're fears will quickly go > away :). > > > What I was hoping to hear is "Oh > > no, ctypes is all C anyways, and will perform just the same as Cython" > > A simple benchmark: > > import ctypes > libm = ctypes.cdll.LoadLibrary("libm.dylib") # platform dependent... > def ctypes_sum(N): > lib_sqrt = libm.sqrt > lib_sqrt.argtypes = (ctypes.c_double,) > lib_sqrt.restype = ctypes.c_double > s = 0 > for i in range(N): > s += lib_sqrt(i) > return s > > %cython > cdef extern from "math.h": > double sqrt(double) > > def cython_sum(long N): > cdef int i > cdef double s=0 > for i in range(N): > s += sqrt(i) > return s > > >>> time ctypes_sum(10**6) > > 666666166.4588418 > Time: CPU 1.13 s, Wall: 1.14 s > > time cython_sum(10**6) > 666666166.4588418 > Time: CPU 0.03 s, Wall: 0.03 s
interesting simple minded benchmark :) how would this translate into the pure-python mode ? (I couldn't seem to be able to declare the C-sqrt function using the pure-python mode of cython: http://wiki.cython.org/pure wasn't helpful) cheers, sebastien. -- ######################################### # Dr. Sebastien Binet # Laboratoire de l'Accelerateur Lineaire # Universite Paris-Sud XI # Batiment 200 # 91898 Orsay ######################################### _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
