a Differenza di altri linguaggi di programmazione, Python sottolinea ampiamente la leggibilità del codice. La sua sintassi semplice ed espressiva consente inoltre agli sviluppatori di aggiungere funzionalità alle applicazioni software senza scrivere codice lungo e complesso. Inoltre, Python è uno dei linguaggi di programmazione più dinamici. I programmatori possono implementare Python in diversi modi. Hanno anche la possibilità di scegliere tra diverse implementazioni di Python. L’implementazione predefinita del linguaggio di programmazione Python è CPython.
Nonostante sia scritto in linguaggio di programmazione C, CPython è distribuito come una libreria Python standard. Compila il codice sorgente Python in un bytecode intermedio. Il bytecode intermedio viene eseguito dalla macchina virtuale CPython. Molti programmatori optano per CPython a causa della sua compatibilità con una vasta gamma di pacchetti Python e moduli di estensione C. Ma la compilazione CPython rende Python più lento di vari linguaggi di programmazione compilati e richiede risorse server aggiuntive.
Quindi, molti programmatori optano per l’implementazione alternativa di Python per aumentare la velocità di esecuzione del codice. Hanno anche la possibilità di scegliere tra diverse alternative a CPython — Jython, IronPython, Cython, PyPy e CLPython. Ma una grande percentuale di programmatori Python preferisce PyPy ad altre implementazioni grazie alle sue prestazioni e velocità ottimali. A differenza di altre implementazioni, PyPy è scritto in linguaggio di programmazione Python. Utilizza anche un interprete che è scritto in un sottoinsieme del linguaggio di programmazione Python — RPython.
PyPy aumenta drasticamente la velocità di esecuzione del codice Python attraverso la compilazione just-in-time (JIT). Sfrutta i metodi di compilazione JIT per migliorare l’efficienza e le prestazioni del sistema interprete. Il compilatore JIT rende ulteriormente PyPy eseguire programmi Python sia brevi che lunghi molto più veloci di implementazioni simili. Diversi studi suggeriscono anche che PyPy è circa 7,5 volte più veloce di CPython. Ogni nuova versione di PyPy inoltre viene fornito con prestazioni migliorate ed esegue programmi Python più velocemente rispetto al suo predecessore.
Perché gli sviluppatori preferiscono PyPy ad altre implementazioni di Python?
JIT Compilazione
PyPy mira ad ottimizzare la velocità di esecuzione di ogni programma Python. Viene fornito con un compilatore JIT integrato. Utilizza anche metodi di compilazione JIT per eseguire sia programmi Python semplici che grandi poltiglia più velocemente dell’implementazione Python predefinita. Quindi, molti sviluppatori optano per PyPy per eseguire applicazioni Python grandi e complesse più velocemente.
Consumo di memoria ridotto
Oltre ad aumentare il tempo di esecuzione del codice, PyPy rende anche i programmi Python consumano meno memoria. Tuttavia, il calo dell’utilizzo della memoria può differire da un programma all’altro. Ma PyPy rende ancora i programmi Python che consumano meno memoria di CPython.
Supporto Stackless Python
PyPy supporta inoltre una versione migliorata del linguaggio di programmazione Python — Stackless Python. Stackless Python viene eseguito programmi basati su thread in modo più efficiente di Python. Aiuta anche i programmatori a evitare alcuni dei problemi di complessità e prestazioni relativi ai thread convenzionali. Durante l’utilizzo di PyPy, i programmatori possono anche accelerare le applicazioni scrivendo codice in stile concorrente.
Un approccio Sandboxing diverso
PyPy adotta inoltre un approccio sandboxing che consente ai programmatori di eseguire programmi Python non attendibili in modo più efficiente. L’approccio sandboxing non richiede ai programmatori di limitare l’uso di funzionalità linguistiche considerate non sicure. Invece, sostituisce la chiamata effettuata dal programma Python a librerie esterne con uno stub. Lo stub interagisce con librerie di terze parti in base alla politica di gestione dei processi. Tuttavia, l’approccio sandboxing è ancora un prototipo funzionante.
Nel complesso, PyPy è molto più veloce di altre implementazioni di Python. Come evidenziato da diversi studi, è circa 7,5 volte più veloce di CPython. Inoltre, ogni nuova versione di PyPy viene fornito con prestazioni migliorate. Ma il tempo di esecuzione può differire da un programma all’altro. Secondo studi specifici, PyPy esegue il codice Python puro molto più velocemente i programmi che chiamano funzioni codificate in C. Quindi, gli sviluppatori Python devono tenere a mente i pro ei contro di PyPy per ottimizzare la velocità di esecuzione del codice Python.