[Python-Dev] Micro-benchmarks for PEP 580 (original) (raw)

Victor Stinner vstinner at redhat.com
Tue Jul 10 18:47:08 EDT 2018


2018-07-10 14:59 GMT+02:00 INADA Naoki <songofacandy at gmail.com>:

PyObjectCallFunction(func, "n", 42);

Currently, we create temporary long object for passing argument. If there is protocol for exposeing format used by PyArgParse*, we can bypass temporal Python object and call myfuncimpl directly.

I'm not sure that it's worth it. It seems complex to implement.

I proposed something simpler, but nobody tried to implement it. Instead of calling the long and complex PyArg_Parse...() functions, why not generating C code to parse arguments instead? The idea looks like "inlining" PyArg_Parse...() in its caller, but technically it means that Argument Clinic generates C code to parse arguments.

PyArg_Parse...() is cheap and has been optimized, but on very fast functions (less than 100 ns), it might be significant. Well, to be sure, someone should run a benchmark :-)

Victor



More information about the Python-Dev mailing list