Hacker News new | past | comments | ask | show | jobs | submit login

Veteran python hater here.

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.




> 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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: