Evaluación del cambio en el rendimiento de CPython en los últimos 5 años

Miguel Grinberg, autor de varios libros sobre los frameworks de Python SQLAlchemy y Flask, publicó los resultados de las pruebas de rendimiento de CPython, versiones 3.9 a 3.14. Se realizaron pruebas similares para PyPy 3.11 (una implementación de Python con compilador JIT), Node.js 24 y Rust 1.90. Para las versiones 3.13 y 3.14 de CPython, se midió el rendimiento adicionalmente con el compilador JIT habilitado y el modo de compilación de subprocesos libres sin bloqueo global.

Para medir el rendimiento, utilizamos scripts para calcular los números de Fibonacci (recursión profunda) y ordenar números aleatorios mediante el método de burbuja. Los ejecutamos en modo monohilo y los dividimos en cuatro subprocesos. Las pruebas se realizaron en Ubuntu 24.04 en un portátil con un procesador Intel Core i5 y en macOS Sequoia en un portátil con un procesador Apple M2.

En la mayoría de las pruebas, CPython 3.14 fue aproximadamente un 20 % más rápido que la versión 3.13, aunque las versiones 3.11 y 3.12 fueron más rápidas en algunas pruebas. La diferencia de rendimiento entre la versión 3.14, la 3.9 y la 3.10 fue aproximadamente el doble. PyPy, Node.js y Rust superaron a CPython 3.14 en la primera prueba por 4.93, 4.88 y 69.82 veces, respectivamente, y en la segunda por 18.14, 6.64 y 36.15 veces, respectivamente (solo se compararon los modos de un solo subproceso).

Evaluación del cambio en el rendimiento de CPython en los últimos 5 años
Evaluación del cambio en el rendimiento de CPython en los últimos 5 años
Evaluación del cambio en el rendimiento de CPython en los últimos 5 años
Evaluación del cambio en el rendimiento de CPython en los últimos 5 años

El modo global sin bloqueos en CPython 3.14 duplicó la velocidad de ejecución multihilo. Habilitar el modo JIT en CPython no mejoró significativamente el rendimiento y, en una prueba de rendimiento de macOS 3.14, incluso ralentizó la ejecución.

Evaluación del cambio en el rendimiento de CPython en los últimos 5 años
Evaluación del cambio en el rendimiento de CPython en los últimos 5 años

En pruebas de un solo subproceso, el modo sin bloqueo global ralentizó notablemente la ejecución de la tarea, mientras que el modo con JIT casi no tuvo impacto en el rendimiento.

Evaluación del cambio en el rendimiento de CPython en los últimos 5 años
Evaluación del cambio en el rendimiento de CPython en los últimos 5 años


Fuente: opennet.ru

Añadir un comentario