[pypy-dev] Question about extension support

Benjamin Peterson benjamin at python.org
Wed Mar 26 21:52:39 CET 2014

On Wed, Mar 26, 2014, at 13:47, Kevin Modzelewski wrote:
> Hi all, thanks for the responses, but I guess I should have been more
> explicit -- I'm curious about *why* PyPy is slow on existing extension
> modules and why people are being steered away from them.  I completely
> support the push to move away from CPython extension modules, but I'm not
> sure it's reasonable to expect that programmers will rewrite all the
> extension modules they use.
> Put another way, I understand how having a JIT-understandable cffi module
> will be faster on PyPy than an extension module, but what I don't quite
> understand is why CPython extension modules have to be slower on PyPy
> than
> they are on CPython.  I'm not saying that extension modules should be
> sped
> up by PyPy, but I'm curious why they have a reputation for being slower.

There are several reasons. Two of the most important are
1) PyPy's internal representation of objects is different from
CPython's, so a conversion cost must be payed every time objects pass
between pure Python and C. Unlike CPython, extensions with PyPy can't
poke around directly in data structures. Macros like PyList_SET_ITEM
have to become function calls.
2) Bridging the gap between PyPy's GC and CPython's ref counting
requires a lot of bookkeeping.

More information about the pypy-dev mailing list