[Tutor] improving speed using and recalling C functions
Gabriele Brambilla
gb.gabrielebrambilla at gmail.com
Fri Apr 11 15:00:53 CEST 2014
I think I have Cython already installed with Anaconda.
How it works?
Thanks
Gabriele
2014-04-11 8:16 GMT-04:00 Albert-Jan Roskam <fomcl at yahoo.com>:
> ________________________________
> > From: Gabriele Brambilla <gb.gabrielebrambilla at gmail.com>
> >To: Danny Yoo <dyoo at hashcollision.org>
> >Cc: python tutor <tutor at python.org>
> >Sent: Friday, April 11, 2014 5:30 AM
> >Subject: Re: [Tutor] improving speed using and recalling C functions
> >
> >
> >
> >Hi Danny,
> >I followed your suggestion.
> >Tomorrow morning I will run this new version of the code.
> >
> >
> >Now using a sample of 81 elements (instead of 600000) the profile returns:
> >
> >
> >Thu Apr 10 23:25:59 2014 restats
> >
> >
> > 18101188 function calls in 1218.626 seconds
> >
> >
> > Ordered by: internal time
> > List reduced from 13 to 10 due to restriction <10>
> >
> >
> > ncalls tottime percall cumtime percall filename:lineno(function)
> > 1 1015.803 1015.803 1218.334 1218.334 skymaps5.py:44(mymain)
> > 18101000 202.490 0.000 202.490 0.000 {method 'write' of 'file'
> objects}
> >
> >
> > 1 0.292 0.292 1218.626 1218.626 <string>:1(<module>)
> > 6 0.029 0.005 0.029 0.005 {open}
> > 5 0.010 0.002 0.010 0.002 {method 'close' of 'file'
> objects}
> >
> >
> > 81 0.002 0.000 0.002 0.000 {method 'split' of 'str'
> objects}
> > 82 0.001 0.000 0.001 0.000 {zip}
> > 1 0.000 0.000 0.000 0.000 function_base.py:8(linspace)
> > 1 0.000 0.000 0.000 0.000
> function_base.py:93(logspace)
> > 5 0.000 0.000 0.000 0.000
> {numpy.core.multiarray.zeros}
> >
> >
> >Anyway I would like to try to speed it up using C functions (and maybe
> comparing the resuts of the two profile in the end)
> >How can I do it now? Can I use Cython?
>
> If you have a compiler installed already it's just easy_install cython.
> Writing Cython is not hard. That is, you easily get speed improvements.
> It's in a .pyx file and once you're done you generate the .c and .so/.dll
> files with a setup.py like below. Reason why I am posting this snippet is
> the way to generate an annotated html file of your cython code. The whiter,
> the more in C, the better. Yellow means stuff might still be improved more.
>
> * setup.py
> from distutils.core import setup
> from distutils.extension import Extension
> from Cython.Distutils import build_ext
> import Cython.Compiler.Options
> Cython.Compiler.Options.annotate = True # <---- really handy
>
> setup(
> cmdclass = {'build_ext': build_ext},
> ext_modules = [Extension("myModule", ["myModule.pyx"])]
>
> )
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20140411/c38c25a8/attachment.html>
More information about the Tutor
mailing list