Cada octubre, toca darle una vuelta al nuevo lanzamiento de Python (técnicamente, estoy usando la versión 3.15.0rc3, la versión oficial 3.15 aún falta unos días). Al igual que hice con mi artículo de rendimiento de Python 3.14 hace un año, hoy comparto una nueva ejecución de mi benchmark informal, comparando Python 3.15 con intérpretes anteriores que van desde la 3.10. Si no te interesan las tablas y los gráficos y solo quieres leer mi análisis, no dudes en saltar a la sección de conclusiones al final.
El benchmark que llamé "informal" ¿qué significa eso? Objetiva y universalmente medir编程语言的性能是不可能的。 todo lo que puedes hacer es escribir algunos programas y ejecutarlos para obtener una medida de su rendimiento. Otros programas pueden mostrar características de rendimiento similares o pueden no hacerlo, realmente no hay manera de saberlo. Mi intención con este benchmark es solo sentir los cambios de rendimiento en las versiones de Python, pero quiero dejar claro que no estoy intentando获得一个全面的性能概况 Python 解释器。Para mi benchmark ejecutaré dos programas llamados fibo.py y bubble.py, que puedes inspeccionar si te gusta.
Estos son los mismos programas que utilicé en ediciones anteriores de este benchmark. El primero calcula números de la secuencia de Fibonacci, y el segundo ordena números usando el algoritmo de burbuja. He elegido estos dos programas como代表性 的两类算法。El cálculo de Fibonacci se hace usando recursión, que he encontrado algo ineficiente en los intérpretes de Python.
Por otro lado, el bubble sort solo usa bucles for, sin ninguna recursión. Hay otros tipos de programas que mi benchmark no intenta cubrir. En particular, ten en cuenta que no incluyo código I/O limitado en este benchmark.
Porque algunas mejoras de rendimiento en versiones recientes de Python giran en torno al multihilo, también creé una variación multihilo para cada programa, por lo que en total tengo cuatro pruebas diferentes. La matriz de pruebas La matriz de pruebas completa es en realidad bastante compleja, porque tengo que ejecutar las cuatro variaciones de programa bajo todas las versiones de Python, más las alternativas JIT y free-threading para aquellas que las tienen. Me gusta ejecutar las pruebas bajo Py Py también, porque este intérprete en ejecuciones anteriores de este benchmark ha mostrado un rendimiento impresionante.
Y para situar el rendimiento de Python dentro del ecosistema más amplio, también he portado los dos programas a Java Script (Node.js) y Rust. Aquí está la matriz de pruebas completa con la que he trabajado: 2 scripts de prueba: fibo.py: calcula números de Fibonacci, con recursión; bubble.py: ordena una lista de números aleatorios generados, sin recursión. 2 modos de hilo: Single-threaded; 4 hilos paralelos. 6 versiones de Python, más versiones recientes de Py Py, Node.js y Rust: CPython 3.10, 3.11, 3.12, 3.13, 3.14, 3.15; Py Py 3.12; Node 26.3; Rust 1.97. 3 intérpretes de Python: Estándar; Just-In-Time (JIT): solo para CPython 3.13+; Free-threading (FT): solo para CPython 3.13+. Los lectores de mis benchmarks anteriores pueden recordar que tenía una dimensión adicional en mi matriz para Linux vs. mac OS.
Dado que en las dos anteriores ejecuciones del benchmark no hubo diferencias significativas entre ellas, he decidido descartar las pruebas de mac OS esta vez, por lo que todos los tests se ejecutaron en mi laptop con Linux, que tiene un procesador Intel Core i5 y ejecuta Gentoo Linux. El método que uso para medir每个参与者的性能是运行测试程序三次并取三次运行时间的平均值。在下面共享的结果表中,我也展示了与 3.15 版本的速度差异,并且 cuando tiene sentido también la velocidad差异 versus la versión anterior de un dado intérprete. Para comparaciones de velocidad, uso una razón simple, donde 1x significa misma velocidad, 0.5x significa mitad de velocidad (o que tomó el doble de tiempo para...
Fuente: Hacker News · Resumido por HeadlinesBriefing