[Python-Dev] cffi in stdlib

Gregory P. Smith greg at krypto.org
Thu Dec 19 02:17:59 CET 2013


On Tue, Dec 17, 2013 at 8:43 AM, Stefan Krah <stefan at bytereef.org> wrote:

> Maciej Fijalkowski <fijall at gmail.com> wrote:
> > I would like to discuss on the language summit a potential inclusion
> > of cffi[1] into stdlib. This is a project Armin Rigo has been working
> > for a while, with some input from other developers.
>
> I've tried cffi (admittedly only in a toy script) and find it very nice
> to use.
>
> Here's a comparison (pi benchmark) between wrapping libmpdec using a
> C-extension (_decimal), cffi and ctypes:
>
>
> +-------------------------------+----------+----------+---------+
> |                               | _decimal |  ctypes  |   cffi  |
> +===============================+==========+==========+=========+
> | cpython-tip (with-system-ffi) |   0.19s  |   5.40s  |  5.14s  |
> +-------------------------------+----------+----------+---------+
> | cpython-2.7 (with-system-ffi) |    n/a   |   4.46s  |  5.18s  |
> +-------------------------------+----------+----------+---------+
> |      Ubuntu-cpython-2.7       |    n/a   |   3.63s  |    -    |
> +-------------------------------+----------+----------+---------+
> |      pypy-2.2.1-linux64       |    n/a   |  125.9s  |  0.94s  |
> +-------------------------------+----------+----------+---------+
> |     pypy3-2.1-beta1-linux64   |    n/a   |  264.9s  |  2.93s  |
> +-------------------------------+----------+----------+---------+
>
>
> I guess the key points are that C-extensions are hard to beat and that
> cffi performance on pypy-2 is outstanding. Additionally it's worth noting
> that Ubuntu does something in their Python build that we should do, too.
>

Ubuntu compiles their Python with FDO (feedback directed optimization /
profile guided optimization) enabled. All distros should do this if they
don't already. It's generally 20% interpreter speedup. Our makefile already
supports it but it isn't the default build as it takes a long time given
that it needs to compile everything twice and do a profiled benchmark run
between compilations.

-gps


>
> +1 for cffi in the stdlib.
>
>
>
> Stefan Krah
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> https://mail.python.org/mailman/options/python-dev/greg%40krypto.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20131218/f2280c0b/attachment.html>


More information about the Python-Dev mailing list