New submission from Antoine Pitrou <pit...@free.fr>: Here is the Nth patch for a globals/builtins cache. As other caches at the same kind, it shows very small to no gain on non-micro benchmarks, showing that contrary to popular belief, globals/builtins lookup are not a major roadblock in today's Python performance.
However, this patch could be useful in combination with other optimizations such as issue10399. Indeed, using the globals/builtins version id, it is easy and very cheap to detect whether the function pointed to by a global name has changed or not. As for micro-benchmarks, they show that there is indeed a good improvement on builtins lookups: $ ./python -m timeit "x=len;x=len;x=len;x=len;x=len;x=len;x=len;x=len;x=len;x=len;" -> without patch: 1000000 loops, best of 3: 0.282 usec per loop -> with patch: 10000000 loops, best of 3: 0.183 usec per loop ---------- components: Interpreter Core files: globcache5.patch keywords: patch messages: 121081 nosy: alex, belopolsky, benjamin.peterson, dmalcolm, jhylton, nnorwitz, pitrou, rhettinger, sdahlbac, thomas.lee, titanstar priority: low severity: normal stage: patch review status: open title: Globals / builtins cache type: performance versions: Python 3.3 Added file: http://bugs.python.org/file19590/globcache5.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue10401> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com