stefan brunthaler, 02.09.2011 17:55: >> 4) Regarding inlined object references, I would expect that it's much more >> worthwhile to speed up LOAD_GLOBAL and LOAD_NAME than LOAD_CONST. I guess >> that this would be best helped by watching the module dict and the builtin >> dict internally and invalidating the interpreter state after changes (e.g. >> by providing a change counter in those dicts and checking that in the >> instructions that access them), and otherwise keeping the objects cached. >> Simply watching the dedicated instructions that change that state isn't >> enough as Python allows code to change these dicts directly through their >> dict interface. > [...] > Thanks for the pointers to the dict stuff, I will take a look (IIRC, > Antoine pointed me in the same direction last year, but I think the > design was slightly different then), Not unlikely, Antoine tends to know the internals pretty well. The Cython project has been (hand wavingly) thinking about this also: implement our own module type with its own __setattr__ (and dict proxy) in order to speed up access to the globals in the *very* likely case that they rarely or never change after module initialisation time and that most critical code accesses them read-only from within functions. If it turns out that this makes sense for CPython in general, it wouldn't be a bad idea to join forces at some point in order to make this readily usable for both sides. Stefan
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