Speaker
Victor Stinner
Material
Note
Present
- PyPy
- fully compatible with CPython
- issues
- slower when involving C extension
- larger memory footprint
- longer startup time
- multiprocessing
- Work around the GIL limitation
- Shared memory (Python 3.8) avoids memory copies between workers
- Cython
- Easy way to write C extension
- Support multiple Python versions
- Numba
- JIT compiler tranlating subset of Python and NumPy
- Simplified Threading (release GIL)
- Summary
- PyPy doesn't require any code change
- multiprocessing scales
- Use Cython, don't use C API
- Numba makes numpy faster
Future
- New PyHandle C API
- CPython
- on top of the current C API
- PyPy
- More efficient that the current C API
- Cython
- no need to change your code, Cython will handle it
- CPython
- Reference counting
- Gilectomy
- Tracing CG
- Subinterpreters (WIP)
- PEP 545
- GIL -> on lock per interpreter
- Expectation
- lower memory footprint
- faster locks
- limitation: python object cannot be shared between interpreters