python llvm unladen-swallow

python - Opiniones de Unladen Swallow?



llvm unladen-swallow (7)

¿Cuáles son sus opiniones y expectativas en Unladen Swallow de Google ? De su plan de proyecto:

Queremos que Python sea más rápido, pero también queremos que sea fácil para las aplicaciones grandes y bien establecidas cambiar a Unladen Swallow.

  1. Produzca una versión de Python al menos 5 veces más rápido que CPython.
  2. El rendimiento de la aplicación Python debe ser estable.
  3. Mantener la compatibilidad a nivel de fuente con las aplicaciones CPython.
  4. Mantenga la compatibilidad de nivel de fuente con los módulos de extensión CPython.
  5. No queremos mantener una implementación de Python para siempre; vemos nuestro trabajo como una rama, no como un tenedor.

Y aún más dulce:

Además, tenemos la intención de eliminar el GIL y arreglar el estado del multihilo en Python. Creemos que esto es posible mediante la implementación de un GC más sofisticado

Casi parece demasiado bueno para ser cierto, como lo mejor de PyPy y Stackless combinados.

Más información:

Actualización: como señaló DNS, había una pregunta relacionada: ¿Qué es LLVM y cómo se está reemplazando la máquina virtual de Python con LLVM aumentando las velocidades 5 veces?


Creo que el proyecto tiene objetivos nobles y con suficiente tiempo (2-3 años), probablemente llegarán a la mayoría de ellos.

Es posible que no puedan fusionar su rama en el tronco porque la visión actual de Guido es que cpython debería ser una implementación de referencia (es decir, no debería hacer cosas que son imposibles de copiar IronPython y jython). He visto informes que esto es lo que evitó que las partes geniales de stackless se fusionaran en cpython.


Creo que una mejora de 5 veces la velocidad no es tan importante para mí personalmente.

No es un cambio de orden de magnitud. Aunque si consume energía de la CPU en la escala de Google, puede ser una inversión valiosa para que algunos de sus empleados trabajen en ella.

Muchas de las mejoras de velocidad probablemente lo convertirán en cpython con el tiempo.

Deshacerse del GIL es interesante en principio, pero probablemente revelará muchos problemas con módulos que no son seguros para hilos una vez que se elimine el GIL.

No creo que vaya a utilizar Unladen Swallow en el corto plazo, pero al igual que la atención al rendimiento puede mejorar las versiones regulares de Python.


Ellos tienen un lanzamiento trimestral. Así que no muy lejos, espere y mire, deje que ellos traigan algo más que solo un plan.

Si llega a ser verdad, es fácil eliminar C y C ++ incluso para operaciones intensivas en rendimiento.

Incluso si se trata de un proyecto de código abierto patrocinado por Google, sorprendentemente no involucra a Guido en ninguna parte.



Lamento decepcionarte, pero cuando lees PEP 3146 las cosas se ven mal.

La mejora es ahora mínima y, por lo tanto, el compilador-código se vuelve más complicado. También eliminar el GIL tiene muchas desventajas.

Por cierto. PyPy parece ser más rápido que Unladen Swallow en algunas pruebas .


Tengo altas esperanzas por eso.

  1. Esto está siendo trabajado por varias personas de Google. Viendo cómo el BDFL también se emplea allí, esto es positivo.

  2. De la nada, afirman que esta es una rama, y ​​no un tenedor. Como tal, está dentro del ámbito de la posibilidad de que eventualmente se fusione en el tronco.

  3. Lo más importante es que tienen una versión funcional . Están usando una versión de trago descargado ahora mismo para cosas de Youtube.

Parecen tener su mierda juntos. Tienen un plan relativamente detallado para un proyecto en esta etapa, y tienen una lista de pruebas que utilizan para medir las mejoras y regresiones del rendimiento.

No estoy conteniendo la respiración por la eliminación de GIL, pero incluso si nunca llegan a eso, la velocidad aumenta por sí sola, lo hace increíble.


Esta pregunta discutió muchas de las mismas cosas. Mi opinión es que suena genial, pero estoy esperando ver cómo se ve y cuánto tiempo se necesita para estabilizarme.

Me preocupa especialmente la compatibilidad con el código y las bibliotecas existentes, y cómo responde la comunidad de escritura de la biblioteca. En definitiva, aparte de los proyectos de pasatiempos personales, no tiene valor para mí hasta que pueda ejecutar todas mis bibliotecas de terceros.