Hi Cory,

I didn't write the 'C' code or the Python wrappers myself but I have
modified the 'C' source code and added new python wrapper function - they
are for the Raspberry Pi RPiGPIO and RPIO hardware integration code.  The
"wrappers" are very thin layers defining to the Cpython interpreter (or pypy
JIT) how to map the Python call to the 'C' equvalent call along with
exceptions and control of the GIL.  There's no state stored within this
'wrapper' code - the 'C' code blocks returning OK, or an error which raises
a Python exception.  I'll look at CFFI to see if that sheds any light.

Andy

-----Original Message-----
From: Cory Benfield [mailto:c...@lukasa.co.uk] 
Sent: 01 July 2015 13:48
To: Andy Baker
Cc: pypy-dev@python.org
Subject: Re: [pypy-dev] pypy 2.2.1 performance on Raspian


> On 1 Jul 2015, at 09:58, Andy Baker <a...@pistuffing.co.uk> wrote:
> 
> I am trying pypy as a performance increase over CPython.  My code uses
standard python libraries (not numpy), plus 2 'C' libraries accessing
Raspberry Pi GPIO hardware with python wrappers.  I have compiled both with
pypy (sudo pypy setup.py install).  The pypy version runs with no problems
but is 2.5 times slower than CPython.  From the performance stats, I believe
2.2.1 should be on average 6 times faster.  I presume it's my 'C' python
libraries which are the cause of the reduced performance.  What do I need to
do to make these private libraries pypy compatible?
> 

When you say you have Python wrappers, how have you written them? Generally
PyPy works best with Python interfaces written using CFFI[0].

Cory

[0]: https://cffi.readthedocs.org/en/latest/

_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to