________________________________ > From: Gabriele Brambilla <gb.gabrielebrambi...@gmail.com> >To: Danny Yoo <d...@hashcollision.org> >Cc: python tutor <tutor@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"])] ) _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor