Psyco es un compilador just-in-time especializado sin mantenimiento para Python anterior a 2.7 desarrollado originalmente por Armin Rigo y mantenido y desarrollado por Christian Tismer . El desarrollo cesó en diciembre de 2011. [1]
Desarrollador (es) | Armin Rigo, Christian Tismer |
---|---|
Lanzamiento final | 1.6 / 16 de diciembre de 2007 |
Repositorio | |
Escrito en | C , Python |
Sistema operativo | Multiplataforma |
Plataforma | Solo x86 de 32 bits |
Tipo | Compilador justo a tiempo |
Licencia | Licencia MIT |
Sitio web | psyco |
Psyco se ejecutó en sistemas operativos derivados de BSD , Linux , Mac OS X y Microsoft Windows utilizando procesadores compatibles con Intel de 32 bits . Psyco se escribió en C y generó solo código basado en x86 de 32 bits .
Aunque Tismer anunció el 17 de julio de 2009 que se estaba trabajando en una segunda versión de Psyco, [2] otro anuncio declaró el proyecto “sin mantenimiento y muerto” el 12 de marzo de 2012 y señaló a los visitantes a PyPy . [3] A diferencia de Psyco, PyPy incorpora un intérprete y un compilador que puede generar C, mejorando su compatibilidad multiplataforma sobre Psyco.
Mejora de la velocidad
Psyco puede acelerar notablemente las aplicaciones vinculadas a la CPU. El rendimiento real depende en gran medida de la aplicación y varía desde una leve desaceleración hasta una aceleración de 100x. [4] [5] [6] [7] La mejora de la velocidad promedio suele estar en el rango de 1.5-4x, lo que hace que el rendimiento de Python se acerque a lenguajes como Smalltalk y Scheme , pero aún más lento que los lenguajes compilados como Fortran , C o algunos otros lenguajes JIT como C # y Java . [8]
Psyco también anuncia su facilidad de uso: la optimización de Psyco más simple implica agregar solo dos líneas al principio de un script: [9]
import psyco psyco . completo ()
Estos comandos importarán el módulo psyco y harán que Psyco optimice todo el script. Este enfoque es más adecuado para scripts más cortos, pero demuestra la cantidad mínima de trabajo necesaria para comenzar a aplicar optimizaciones de Psyco a un programa existente.
Ver también
- PyPy
- Golondrina sin carga
- Cython
- YARV (otro Ruby VM)
Referencias
- ^ "psico / se compromete" . Bitbucket . Armin Rigo.
- ^ Tismer, Christian (17 de julio de 2009). "[pypy-dev] ANN: psyco V2" . lista de correo de pypy-dev .
- ^ "Página de inicio de Psyco" .
- ^ "Puntos de referencia de Python Psyco" . Archivado desde el original el 6 de junio de 2008 . Consultado el 24 de abril de 2008 .
- ^ "Página de inicio de Python Psyco en sourceforge" . Consultado el 4 de marzo de 2009 .
- ^ "Una guía para principiantes sobre el uso de Python para la informática de rendimiento en scipy.org" . Archivado desde el original el 11 de marzo de 2009 . Consultado el 4 de marzo de 2009 .
- ^ "Encantador Python: hacer que Python se ejecute tan rápido como C con Psyco" . Consultado el 4 de marzo de 2009 .
- ^ "Resumen de la gráfica de caja" . Archivado desde el original el 3 de junio de 2011 . Consultado el 16 de octubre de 2009 .
- ^ Rigo, Armin. "Ejemplos rápidos" . La guía definitiva de Psyco . Consultado el 3 de junio de 2011 .
enlaces externos
- Psyco en SourceForge.net
- Artículo de IBM developerWorks de David Mertz : Haga que Python se ejecute tan rápido como C con Psyco
- notas psicópatas, pobre Yorick