[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...

Amen!

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 mailing list