Shouldn't be too surprising, given how PyPy is generally faster than CPython by about x7-8 factor:
I'd expect a much larger difference in tasks that are pure Python (loading a CSV is done primarily through the csv module, i.e. all the hot loops are in C).
Re:PyPy.js: Python in the web browser
by icebraining on Wednesday August 22, 2018 @12:21PM
(#17819828)
Yes, but PyPy is usually compiled to machine code (and emits machine code), not to JS.
True, but the asm.js is then compiled to machine code by the browser's JS JIT.
I'd expect some overhead from sandboxing etc., but it should be fairly close to native speed.
It's not "overhead from sandboxing" that's a problem, it's the fact that translating from bytecode to bytecode to bytecode will cause it to lose some ... succinctness at each step, giving the final machine code generator a harder time coming up with efficient code for it.
Indeed, but many of the optimizations introduced by PyPy should be visible regardless of compilation target.
I love Python but js is close to an order of magnitude faster
Re:PyPy.js: Python in the web browser
by icebraining on Wednesday August 22, 2018 @12:41PM
(#17819976)
Have you tried PyPy?
Unfortunately it hasn’t been a drop-in replacement for our CPython codebase (lots of Numpy/Pandas/etc).
no numpy & no tensorflow
Wow, that's awesome! Direct link to the live notebook: https://livebook.inkandswitch.com/fork/welcome
Naturally, I changed the first code block to this:
from random import randint, seed
seed()
"\n".join([randint(5, 25) * ' ' + s for s in ['such code', 'much live', 'wow']])
To my surprise it was faster than Jupyter / CPython for some tasks (e.g. loading and parsing large CSVs).