do you have a link to those wrappers? Generally speaking using CPython C API from PyPy is bound to be slow and there is not much we can do about it (it's a miracle if it works at all)
On Wed, Jul 1, 2015 at 4:00 PM, Andy Baker <[email protected]> wrote: > To clarify, these are python libraries, imported into the main python > script. It's these libraries that are just python library API wrappers for > some underlyinig synchronous C code. Had a quick browse a CFFI, but this > seems more related to call 'C' directly from a Python scripts rather than > 'wrapping' it up as a python library. Since these libraries are not mine, > I'd prefer to stay with the current model rather than discard the library > wrapper and use CFFI instead. > > -----Original Message----- > From: Andy Baker [mailto:[email protected]] > Sent: 01 July 2015 14:15 > To: 'Cory Benfield' > Cc: '[email protected]' > Subject: RE: [pypy-dev] pypy 2.2.1 performance on Raspian > > 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:[email protected]] > Sent: 01 July 2015 13:48 > To: Andy Baker > Cc: [email protected] > Subject: Re: [pypy-dev] pypy 2.2.1 performance on Raspian > > >> On 1 Jul 2015, at 09:58, Andy Baker <[email protected]> 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 > [email protected] > https://mail.python.org/mailman/listinfo/pypy-dev _______________________________________________ pypy-dev mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-dev
