[Python-Dev] New calling convention to avoid temporarily tuples when calling functions (original) (raw)

Guido van Rossum guido at python.org
Mon Aug 8 18:40:23 EDT 2016


On Mon, Aug 8, 2016 at 3:25 PM, Victor Stinner <victor.stinner at gmail.com> wrote:

tl;dr I found a way to make CPython 3.6 faster and I validated that there is no performance regression.

But is there a performance improvement?

I'm requesting approval of core developers to start pushing changes.

In 2014 during a lunch at Pycon, Larry Hasting told me that he would like to get rid of temporary tuples to call functions in Python. In Python, positional arguments are passed as a tuple to C functions: "PyObject *args". Larry wrote Argument Clinic which gives more control on how C functions are called. But I guess that Larry didn't have time to finish his implementation, since he didn't publish a patch.

Hm, I agree that those tuples are probably expensive. I recall that IronPython boasted faster Python calls by doing something closer to the platform (in their case I'm guessing C# or the CLR :-).

Is this perhaps something that could wait until the Core devs sprint in a few weeks? (I presume you're coming?!)

-- --Guido van Rossum (python.org/~guido) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20160808/ff25fd34/attachment.html>



More information about the Python-Dev mailing list