[Python-Dev] New calling convention to avoid temporarily tuples when calling functions

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