Open jpmckinney opened 1 month ago
PyPy disadvantages:
Useful review of other compilers, followed by mypyc content https://glyph.twistedmatrix.com/2022/04/you-should-compile-your-python-and-heres-why.html
These tools benefit from comprehensive (and narrow, i.e. few Any
) typing. To add types, can try:
Other compilers:
from python import os
to do file access. https://docs.exaloop.io/codon/general/roadmapWorth trying out PyPy and mypyc, as they can more or less work with existing code. Can still consider Cython in cases where the alternative is a full rewrite in Rust. Can try these on ocds-merge for learning.
Original description is from when issue was only about PyPy.
We do a fair bit of JSON deserializing (and serializing). On CPython, we use orjson. The json standard library on PyPy is slower, but not by a huge amount, so using PyPy could still be a performance gain. In principle, orjson could be made to support PyPy. https://github.com/ijl/orjson/issues/90#issuecomment-2380389948
Candidates with heavy processing:
Next steps
PyPy profiler support
If PyPy really is faster than CPython for our workloads, then there is no point profiling and optimizing on CPython. So, we'd need profilers on PyPy.
Supported
Memory
TBD
Not supported
Memory
Comparison and discussion: https://github.com/plasma-umass/scalene/issues/423