[Python-Dev] Store x Load x --> DupStore
Phillip J. Eby
pje at telecommunity.com
Sun Feb 20 18:37:41 CET 2005
At 08:17 AM 2/20/05 -0800, Guido van Rossum wrote:
>Where are the attempts to speed up function/method calls? That's an
>area where we could *really* use a breakthrough...
So what happened to Armin's pre-allocated frame patch? Did that get into 2.4?
Also, does anybody know where all the time goes in a function call,
anyway? I assume that some of the pieces are:
* tuple/dict allocation for arguments (but some of this is bypassed on the
fast branch for Python-to-Python calls, right?)
* frame allocation and setup (but Armin's patch was supposed to eliminate
most of this whenever a function isn't being used re-entrantly)
* argument "parsing" (check number of args, map kwargs to their positions,
etc.; but isn't some of this already fast-pathed for Python-to-Python calls?)
I suppose the fast branch fixes don't help special methods like __getitem__
et al, since those don't go through the fast branch, but I don't think
those are the majority of function calls.
And whatever happened to CALL_METHOD? Do we need a tp_callmethod that
takes an argument array, length, and keywords, so that we can skip
instancemethod allocation in the common case of calling a method directly?
More information about the Python-Dev