Re:Loops in Python – Comparison and Performance
by chronial on Thursday August 08, 2019 @01:28PM
(#20646525)
> On the other hand, the interpreter is able to optimize accesses to stuff on the stack.
That is correct – there is no hash lookup for local variables and the variables in a list comprehension are local.
Last I checked, accessing global variables is slow in python because it goes through a hash table (or something) on every lookup. On the other hand, the interpreter is able to optimize accesses to stuff on the stack.
I suspect wrapping the benchmark code (and all the variables) in a method, and then invoking that once would substantially improve the raw python numbers.
By the time I figured this out, I’d already written a pile of python code that was mysteriously >10x slower than it would be in perl 5.