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?
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4