2011-07-09 15 views
15

Acabo de volver a leer la sección sobre modelos de ejecución en la 3ª edición de Learning Python (finales de 2007), y me pareció bastante tentativo. Entonces, miré la misma sección en la 4ª edición (finales de 2009) y me decepcionó bastante que no hubiera cambiado.Cambios recientes al modelo de ejecución de Python?

¿Cuál es el estado para ejecutar Python más allá de CPython? Parece que Jython e IronPython siguen siendo proyectos de nicho; ¿Han surgido otros proyectos similares? ¿Psyco se ha solidificado lo suficiente como para usarlo sin preocupaciones? ¿Hay muchas personas que usan ShedSkin? ¿Hay información sobre cuándo PyPy es generalmente más rápido para la ejecución?

Respuesta

22

El desarrollador de Psyco, Armin Rigo, ahora trabaja en PyPy junto con muchos otros brillantes desarrolladores. PyPy se desarrolla muy activamente y se planea una gran cantidad de exciting stuff en el futuro. PyPy compilado con JIT es casi siempre más rápido que CPython, frequently by a large margin. Tienen un collection of benchmarks tracking their progress. Se está convirtiendo rápidamente en very popular implementation. Es de destacar que en lo que respecta a PyPy:

  1. Muy buena ejecución de Python, Python 2.7.1 implementa actualmente, para que pueda utilizar las últimas y mejores características del lenguaje disponible fuera de 3.x.

  2. El JIT permite algunas aceleraciones verdaderamente increíbles y el soporte de tipos de PyPy puede ser incluso más rápido que los tipos en CPython.

  3. La cadena de herramientas de traducción es muy flexible. Puede apuntar a diferentes backends, compilar con soporte sin apilamiento, intercambiar recolectores de basura, compilar con un JIT, etc.

  4. Soporte bastante completo para ctypes y soporte parcial de la API C (el soporte para ambos se está mejorando rápidamente))

  5. En realidad, puede escribir lo que desee en RPython y traducirlo, por lo que podría utilizar la cadena de herramientas de traducción de manera similar a ShedSkin.

ShedSkin todavía está desarrollado, y lo he usado varias veces en el último año. Es compatible con un subconjunto restringido de Python, y un fragmento significativo de la biblioteca estándar. Vale la pena echarle un vistazo. No recomendaría Jython o IronPython a menos que necesite ejecutar JVM o CLR. Parece que también estaría interesado en Cython.

Cuestiones relacionadas