achieving performance using C/C++

Luis M. González luismgz at gmail.com
Mon Nov 5 08:27:40 EST 2007


On Nov 5, 8:51 am, Filip Wasilewski <filipwasilew... at gmail.com> wrote:
> On Nov 5, 7:40 am, sandipm <sandip.m... at gmail.com> wrote:> I did fair amount of programming in python but never used c/c++ as
> > mentioned below.
> > any good tutorials for using C/C++ to optimize python codebase for
> > performance?
> > how widely do they use such kind of mixed coding practices?
>
> [...]
>
> Since you are fluent in Python I also suggest you to start with
> Pyrex[1]/Cython[2]. This will let you to express your ideas more
> naturally (in a Python-based language) and interface with C code base
> without delving much into reference counting, manual parameters
> conversion and low-level exception handling.
>
> You will find some tutorials and links to resources and mailing lists
> on the projects websites, and if you specify your problem a bit more
> then probably someone will be able to give you more precise
> references.
>
> For alternatives take a look at [3] and [4]. Try also scanning the
> Python Package Index[5] for 'binding', 'wrapper', 'lib' or 'pyrex'
> keywords or browse for C/C++ Programming Language category as this
> will return some examples of Python extensions.
>
> [1]http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
> [2]http://www.cython.org/
> [3]http://www.python.org/doc/faq/extending/#writing-c-is-hard-are-there-...
> [4]http://docs.python.org/lib/module-ctypes.html
> [5]http://pypi.python.org
>
> fw


You might be interested also in ShedSkin.
It is a python to c++ compiler, and it lets you write extension
modules in a restricted subset of python that get automatically
translated to c++. It's still a work in progress although very usable
in its current state (and extremely easy to use).
Its main advantage, compared to Pyrex, is that you don't need to know
c or c++ at all to use it.
Pyrex requires some knowledge about c and its data types in order to
take advantage of its capabilities.
On the other hand, with shedskin you just code in python (getting rid
of its most dynamic features), and this code gets automatically
compiled to a c++ extension module, directly usable from cpython.

Check it out: http://mark.dufour.googlepages.com/

Luis





More information about the Python-list mailing list