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?

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to