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