[Python-Dev] Micro-benchmarks for PEP 580 (original) (raw)
Victor Stinner vstinner at redhat.com
Tue Jul 10 18:47:08 EDT 2018
- Previous message (by thread): [Python-Dev] Micro-benchmarks for PEP 580
- Next message (by thread): [Python-Dev] Micro-benchmarks for PEP 580
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message (by thread): [Python-Dev] Micro-benchmarks for PEP 580
- Next message (by thread): [Python-Dev] Micro-benchmarks for PEP 580
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]