On 2019-04-02 21:38, Mark Shannon wrote:
Hi,
On 01/04/2019 6:31 am, Jeroen Demeyer wrote:
I added benchmarks for PEP 590:
https://gist.github.com/jdemeyer/f0d63be8f30dc34cc989cd11d43df248
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
METH_VARARGS calls.
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.
Jeroen.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com