[Python-Dev] Idea for a fast calling convention
Michael Hudson
mwh at python.net
Fri Feb 27 06:44:29 EST 2004
"Raymond Hettinger" <raymond.hettinger at verizon.net> writes:
> I've been working on ways to speedup parameter passing for function
> calls. It's somewhat expensive to pull parameters off of the stack,
> assemble them into a new tuple, have the function disassemble the tuple,
> and ultimately free the tuple.
Yahbut... that doesn't actually happen all that often.
> METH_NOARGS and METH_O show nice speed-ups by skipping the tuple packing
> and unpacking. Since they are handled as special cases, that approach
> doesn't handle the general case with multiple or optional arguments.
Oh, you're talking about builtin functions.
> My idea is for a new flag, METH_STACK, that generalizes (and potentially
> replaces) METH_NOARGS AND METH_O.
>
> When CALL_FUNCTION sees the flag, it dispatches (*meth)(self, &stack,
> numargs).
>
> On the receiving end, the arguments get retrieved with analogues to
> PyArg_ParseTuple() and PyArg_UnpackTuple() which access the parameters
> directly and do not need a tuple as a carrier.
Have you seen my "function optimization reorganization" patch on SF?
It's a somewhat different result of somewhat similar thinking.
http://python.org/sf/876193
Cheers,
mwh
--
Java sucks. [...] Java on TV set top boxes will suck so hard it
might well inhale people from off their sofa until their heads
get wedged in the card slots. --- Jon Rabone, ucam.chat
More information about the Python-Dev
mailing list