HeadlinesBriefing HeadlinesBriefing.com

JIT de Python 3.15 vs 3.14: benchmarks

Towards Data Science •
×

El autor repitió tres benchmarks de Python de una prueba anterior en Python 3.14 y Python 3.15, con el compilador JIT activado y desactivado en cada versión. En la ronda anterior, el JIT de 3.14 aceleró un cálculo de Mandelbrot en alrededor de un 25% y los cálculos de distancia de Levenshtein en un 27%, mientras que una búsqueda en grafos de Dijkstra no mostró ninguna mejora.

Python 3.15 ha reconstruido el JIT de forma sustancial. La versión 3.14 predecía las rutas de código probables, mientras que 3.15 usa un nuevo front end de trazado que registra la ruta que realmente sigue el programa. El optimizador también incorpora asignación básica de registros, más propagación de constantes y menos operaciones de conteo de referencias. La generación de código para x86-64 y AArch64 ha mejorado, y el código máquina generado usa menos memoria.

Probar las cuatro configuraciones (3.14 y 3.15, cada una con el JIT activado y desactivado) separa el efecto de los cambios del intérprete en 3.15 del efecto de su JIT. Esto importa porque una comparación directa entre 3.14 y 3.15 podría inducir a error. El intérprete de 3.15 también incluye cambios fuera del JIT, como una modificación en el intérprete usado por las compilaciones oficiales de Windows de 64 bits.

El equipo de publicación de Python informa de una mejora de la media geométrica del 7% al 8% frente al intérprete estándar en su conjunto de benchmarks de Linux x86-64, y del 11% al 12% en macOS AArch64. LLVM 21 solo es necesario en el momento de la compilación, por lo que los usuarios de binarios oficiales no necesitan instalarlo.

La nueva ejecución del autor muestra que el JIT más potente ayuda más a esas mismas tres cargas de trabajo, pero aún no ayuda a todos los programas, sobre todo al código que dedica su tiempo a asignar objetos y a llamar a operaciones implementadas en otro lugar.

Fuente: Towards Data Science · Resumido por HeadlinesBriefing