Python: The Optimization Ladder
Chaque année, des benchmarks affirment que Python est cent fois plus lent que C, mais l’auteur réplique en reproduisant n-body et spectral-norm et en ajoutant un pipeline JSON sur Apple M4 Pro. Il présente une échelle d’échelons allant du simple upgrade de CPython aux runtimes alternatifs puis à la compilation et à la transformation du code, avec des chiffres à l’appui. Par exemple, sur n-body CPython 3.14 donne 1 242 ms, tandis que les solutions les plus rapides vont de 10 ms avec Cython à 11 ms avec Rust et 100 ms avec JAX, NumPy atteignant 27 ms. Pour le pipeline JSON, les gains sont plus modestes lorsque l’entrée est des dicts Python préexistants, atteignant environ 1,4× avec Mypyc et jusqu’à 6,3× lorsque l’on passe par un parseur C et des structures natives. En pratique, le texte rappelle qu’il faut profiler et choisir le rung adapté: upgrade CPython, puis NumPy, JAX ou Numba pour les boucles, Cython ou Rust pour les chemins lourds, ou PyPy/GraalPy lorsque l’écosystème s’y prête.