È stato presentato Pyston-lite, un compilatore JIT per Python standard.

Gli sviluppatori del progetto Pyston, che offre un'implementazione ad alte prestazioni del linguaggio Python utilizzando moderne tecnologie di compilazione JIT, hanno presentato l'estensione Pyston-lite con un'implementazione del compilatore JIT per CPython. Mentre Pyston è un fork del codice sorgente di CPython e si sviluppa in modo indipendente, Pyston-lite è concepito come un'estensione universale, destinata a essere collegata all'interprete Python standard (CPython).

Pyston-lite consente di utilizzare le tecnologie di base di Pyston senza sostituire l'interprete, installando un'estensione aggiuntiva tramite il gestore di pacchetti PIP o Conda. Pyston-lite è già disponibile nei repository di PyPI e Conda, e per installarlo è sufficiente eseguire il comando «pip install pyston_lite_autoload» oppure «conda install pyston_lite_autoload -c pyston». Sono disponibili due pacchetti: pyston_lite (il JIT stesso) e pyston_lite_autoload (che esegue la sostituzione automatica del JIT all'avvio del processo Python). È anche possibile gestire programmaticamente l'attivazione del JIT dall'applicazione senza installare il modulo autoload, utilizzando la funzione pyston_lite.enable().

Sebbene Pyston-lite non copra tutte le ottimizzazioni disponibili in Pyston, il suo utilizzo consente di aumentare le prestazioni di circa il 10-25% rispetto al normale Python 3.8. In futuro, è previsto il trasferimento nella Pyston-lite della maggior parte delle ottimizzazioni presenti in Pyston, nonché l'espansione delle versioni di CPython supportate (la prima versione supporta solo Python 3.8). Tra i piani più ambiziosi c'è la collaborazione con il team di CPython per implementare nuove API per JIT, che permetteranno un controllo più completo del funzionamento di Python. Si sta discutendo di includere le modifiche proposte nel ramo Python 3.12. Idealmente, si contempla la possibilità di trasferire tutte le funzionalità da Pyston all'estensione, il che consentirebbe di abbandonare la manutenzione del proprio fork di CPython.

Oltre a Pyston-lite, il progetto ha anche rilasciato un aggiornamento della versione completa del pacchetto Pyston 2.3.4, che offre nuove ottimizzazioni. Nel test pyperformance, la versione 2.3.4 è più veloce della 2.3.3 di circa il 6%. Il guadagno complessivo di prestazioni rispetto a CPython è stimato in 66%.

È importante notare le ottimizzazioni in fase di sviluppo nel ciclo di sviluppo di CPython 3.11, che in alcuni test hanno consentito di aumentare le prestazioni del 25%. Ad esempio, in CPython 3.11 è stata migliorata l'efficienza della cache dello stato del bytecode dei moduli di base, il che accelera l'avvio degli script del 10-15%. È stato notevolmente velocizzato anche il richiamo delle funzioni e sono stati aggiunti interpreti rapidi specializzati per operazioni comuni. Inoltre, si sta lavorando al trasferimento di alcune ottimizzazioni preparate dai progetti Cinder e HotPy.

Nell'ambito del progetto nogil, si sta lavorando a una modalità sperimentale di compilazione di CPython senza il Global Interpreter Lock (GIL), che impedisce l'accesso parallelo agli oggetti condivisi da thread diversi, ostacolando così il parallelismo delle operazioni su sistemi multi-core. Come alternativa per risolvere il problema del GIL, si sta sviluppando la possibilità di legare un GIL separato a ciascun interprete eseguito all'interno di un processo (in un processo possono essere eseguiti più interpreti, ma l'efficacia della loro esecuzione parallela è vincolata dal GIL).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster