Guido van Rossum, il creatore del linguaggio di programmazione Python, ha parlato dei piani per ottimizzare le prestazioni di CPython nella sua presentazione al Python Language Summit. Per la versione 3.11, prevista per il 2022, gli sviluppatori sperano di raggiungere un incremento delle prestazioni di due volte. Un piccolo team di sviluppatori di Microsoft sta lavorando al progetto di ottimizzazione di CPython, dove recentemente Guido è stato assunto.
Nell'implementazione del progetto, gli sviluppatori intendono rispettare una serie di vincoli, come mantenere la piena compatibilità a livello di ABI e codice, e non aumentare le prestazioni a scapito di ritardi nei casi limite. Tra le componenti che possono essere modificate per migliorare le prestazioni ci sono il bytecode, l'allocazione dei dati in memoria, il compilatore e l'interprete.
I progetti vengono pubblicati in un repository separato chiamato faster-cpython. Uno dei partecipanti al progetto, che in precedenza ha lavorato allo sviluppo del compilatore JIT HotPy per CPython, ha presentato un piano in base al quale ritiene realistica un aumento delle performance di cinque volte da raggiungere nella release di Python 3.13. Il progetto è suddiviso in quattro fasi:
- In Python 3.10 sono previste ottimizzazioni nell'interprete, che adatterà il processo di interpretazione ai tipi e ai valori durante l'esecuzione.
- Nella versione di Python 3.11 si prevede di apportare miglioramenti al runtime e agli oggetti chiave, oltre a includere numerose piccole ottimizzazioni specializzate, come l'accelerazione degli operatori binari e delle operazioni con valori interi che si adattano a una sola parola macchina, l'accelerazione delle chiamate e dei ritorni dalle funzioni, e la riduzione dei costi di gestione della memoria e della gestione delle eccezioni.
- In Python 3.12 verrà introdotto un semplice compilatore JIT, applicabile a una piccola parte di codice specializzato.
- In Python 3.13 verranno aggiunte nuove possibilità di generazione di codice macchina durante l'esecuzione e verrà ampliato l'uso del compilatore JIT.
Fonte: opennet.ru
