3 ms·
I believe it is using Numba which converts to machine code. https://numba.pydata.org/ https://numba.pydata.org/
by hermitcrab 3y ago
I believe it is using Numba which converts to machine code.
https://numba.pydata.org/ https://numba.pydata.org/
- mort96 3y agoRight, and compiling Python to machine code does get rid of the overhead associated with opcode dispatch... but it's not magic, Python is still a wildly dynamic language. It's mainly the dynamicness that makes it slow, not the fact that each opcode has to go through a switch statement in the cpython interpreter To get significantly better performance with a JIT, you need one which analyzes the code at runtime to detect patterns, such as "this function is always called with an integer argument" or "the dictionary passed to this function always has this shape", like what V8 does. AFAIK Numba doesn't do that. (Though if I'm wrong and there are benchmarks which shows Numba coming close to something like Rust in normal dynamic Python code, please do correct me! I haven't done much research on Numba specifically)