Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #59375 > unrolled thread

pypy and ctypes

Started byPeter Chant <pete@petezilla.co.uk>
First post2013-11-14 00:39 +0000
Last post2013-11-14 23:05 +0000
Articles 3 — 2 participants

Back to article view | Back to comp.lang.python


Contents

  pypy and ctypes Peter Chant <pete@petezilla.co.uk> - 2013-11-14 00:39 +0000
    Re: pypy and ctypes Neil Cerutti <neilc@norwich.edu> - 2013-11-14 15:13 +0000
      Re: pypy and ctypes Peter Chant <pete@petezilla.co.uk> - 2013-11-14 23:05 +0000

#59375 — pypy and ctypes

FromPeter Chant <pete@petezilla.co.uk>
Date2013-11-14 00:39 +0000
Subjectpypy and ctypes
Message-ID<omidlaxggl.ln2@phoenix.fire>
I'm looking to speed up some python code.  Replacing the python 
interpreter with pypy was impressive.  I noted that use of ctypes (in 
cython?), specifically declaring variables as below, was reported as 
giving a useful result:

cdef float myvar
cdef int i

under cython can provide a useful speed increase even if sections of 
code are not re-written in C.  Does this also work in PyPy?  From 
googling I keep getting pointed at ffi - but that seems to relate more 
to calling c-libraries rather than what I'm trying to do - seeing if 
there are any simple speed ups by declaring variables.

Or is it that - if I keep the code as simple as possible, PyPy is about 
as fast as you can get?

Pete

[toc] | [next] | [standalone]


#59446

FromNeil Cerutti <neilc@norwich.edu>
Date2013-11-14 15:13 +0000
Message-ID<bek7kuFp9neU1@mid.individual.net>
In reply to#59375
On 2013-11-14, Peter Chant <pete@petezilla.co.uk> wrote:
> Or is it that - if I keep the code as simple as possible, PyPy
> is about as fast as you can get?

PyPy profiles your code as it runs and creates, using a
just-in-time compiler, highly optimized versions of frequently
run sections. You don't have to declare types or even think about
it; The scheme will work best with code that runs for a
significant amount of time.

cython allows you to declare types, and attempts to create more
efficient code *at compile time* using those type declaration.

Which approach will be better depends on how the code runs and
how clever you are at using cython.

PyPy isn't designed to speed up programs that run for a few
hundred milliseconds and then complete, though it might sometimes
work for that.

-- 
Neil Cerutti

[toc] | [prev] | [next] | [standalone]


#59491

FromPeter Chant <pete@petezilla.co.uk>
Date2013-11-14 23:05 +0000
Message-ID<ci1glaxojc.ln2@phoenix.fire>
In reply to#59446
On 11/14/2013 03:13 PM, Neil Cerutti wrote:
> On 2013-11-14, Peter Chant <pete@petezilla.co.uk> wrote:
>> Or is it that - if I keep the code as simple as possible, PyPy
>> is about as fast as you can get?
>
> PyPy profiles your code as it runs and creates, using a
> just-in-time compiler, highly optimized versions of frequently
> run sections. You don't have to declare types or even think about
> it; The scheme will work best with code that runs for a
> significant amount of time.
>

That is the situation I'm in.  If it only ran for a second or two 
there'd be no point in worrying about speed. PyPy gave a massive speed 
up.  I was wonding if I could do a little more.

> cython allows you to declare types, and attempts to create more
> efficient code *at compile time* using those type declaration.
>
> Which approach will be better depends on how the code runs and
> how clever you are at using cython.

If it is marginal then I don't think the effort would be worth while.
I do wonder whether writing some specific functions in C using cffi
would benefit.  It is something I have no experience of.

>
> PyPy isn't designed to speed up programs that run for a few
> hundred milliseconds and then complete, though it might sometimes
> work for that.
>

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web