Psyco (software)
Psyco è stato un compilatore just-in-time per Python pre-2.7 il cui sviluppo è cessato nel dicembre 2011. [1] Originariamente creato da Armin Rigo è stato poi mantenuto e sviluppato da Christian Tismer .
Psyco software | |
---|---|
Genere | Compilatore |
Sviluppatore | Armin Rigo, Christian Tismer |
Ultima versione | 1.6 (16 dicembre 2007) |
Sistema operativo | Multipiattaforma |
Linguaggio | C Python |
Licenza | Licenza MIT (licenza libera) |
Sito web | psyco.sourceforge.net/ |
Psyco era disponibile per i sistemi operativi Linux, BSD, Mac OS X e Microsoft Windows che utilizzavano processori Intel compatibili a 32 bit. Psyco è stato scritto in C e generava solo codice basato su architettura x86 a 32 bit.
Il 17 luglio 2009, Christian Tismer, annunciò che stava lavorando a una seconda versione di Psyco [2] che però non vide mai la luce. Un suo successivo annuncio, del 12 marzo 2012, dichiarò il progetto definitivamente "morto" e invitava gli utenti a migrare verso PyPy. [3]
PyPy, a differenza di Psyco, incorpora un interprete e un compilatore in grado di generare codice in C migliorando così la sua compatibilità multipiattaforma.
Miglioramento delle prestazioni
modificaPsyco, in linea teorica, poteva incrementare sensibilmente la velocità delle applicazioni che richiedevano molta CPU (CPU-bound). L'effettivo miglioramento (o peggioramento) delle prestazioni dipendeva molto dall'applicazione specifica e poteva variare da un leggero rallentamento a un incremento delle prestazioni fino a 100 volte. [4] [5]
Il miglioramento medio della prestazioni era generalmente compreso tra 1,5 e 4 volte, rendendo le prestazioni di Python vicine a quelle di linguaggi come Smalltalk e Scheme ma comunque sempre più lente rispetto a linguaggi compilati come Fortran, C o altri linguaggi JIT come C# e Java . [6]
Uno dei punti di forza enfatizzati dal team di sviluppo di Psyco era la sua semplicità d'uso: l'ottimizzazione più elementare di Psyco richiedeva solo l'aggiunta di due righe all'inizio dello script: [7]
import psyco
psyco.full()
La prima istruzione importava il mosulo "psyco" mentre la seconda andava ad ottimizzare il codice dell'intero script.
Grazie a questo approccio, Psyco, era di facile utilizzo e permetteva di ottenere miglioramenti delle prestazioni senza operare grandi modifiche al codice.
Voci correlate
modificaNote
modifica- ^ (EN) Commits, su Bitbucket. URL consultato il 3 gennaio 2025 (archiviato dall'url originale il 6 settembre 2018).
- ^ (EN) ANN: psyco V2, su pypy-dev mailing list. URL consultato il 3 gennaio 2025.
- ^ (EN) Psyco, su psyco.sourceforge.net. URL consultato il 3 gennaio 2025.
- ^ (EN) Psyco Introduction - Expected results, su psyco.sourceforge.net. URL consultato il 3 gennaio 2024.
- ^ (EN) Charming Python: Make Python run as fast as C with Psyco, su ibm.com. URL consultato il 3 gennaio 2025 (archiviato dall'url originale l'11 luglio 2012).
- ^ (EN) Which programming languages are fastest?, su shootout.alioth.debian.org. URL consultato il 3 gennaio 2025 (archiviato dall'url originale il 3 giugno 2011).
- ^ (EN) Psyco - Quick examples, su psyco.sourceforge.net. URL consultato il 3 gennaio 2025.
Collegamenti esterni
modifica- (EN) Psyco, su SourceForge.
- David Mertz's IBM developerWorks article: Make Python run as fast as C with Psyco
- psyco notes, Poor Yorick