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 <fo...@yahoo.com>: > ________________________________ > > 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