[Python-Dev] PEP 580/590 discussion
On 2019-04-02 21:38, Mark Shannon wrote:
> On 01/04/2019 6:31 am, Jeroen Demeyer wrote:
>> I added benchmarks for PEP 590:
> Thanks. As expected for calls to C function for both PEPs and master
> perform about the same, as they are using almost the same calling
> convention under the hood.
While they are "about the same", in general PEP 580 is slightly faster
than master and PEP 590. And PEP 590 actually has a minor slow-down for
I think that this happens because PEP 580 has less levels of indirection
than PEP 590. The vectorcall protocol (PEP 590) changes a slower level
(tp_call) by a faster level (vectorcall), while PEP 580 just removes
that level entirely: it calls the C function directly.
This shows that PEP 580 is really meant to have maximal performance in
all cases, accidentally even making existing code faster.