panoramica
Il piano 3.13 è simile ai primi piani per 3.12.
La grande differenza è che ora abbiamo completato le fondamenta di cui abbiamo bisogno:
- IL Monitoraggio a basso impatto (PEP 669) Fatto.
- Il compilatore bytecode è in condizioni molto migliori.
- Il generatore dell’interprete è in esecuzione.
- Gli esperimenti sul registratore sono stati completati.
- Abbiamo un approccio praticabile per creare un generatore di codice macchina a basso costo e gestibile basato su Copiare e correggere.
Stiamo pianificando tre post paralleli per la versione 3.13:
- Ottimizzatore di livello 2
- Abilita sub-interpreti del codice Python (554).
- Gestione della memoria
Ottimizzatore di livello 2
essere visto Ottimizzatore di livello 2 Per una spiegazione di cosa sia un ottimizzatore di livello 2.
Il piano aziendale è approssimativamente il seguente:
- Far funzionare il compilatore di livello 2
- Crea super blocchi (scarsa qualità)
- Eseguire l’elaborazione di base dei blocchi con collegamenti ipertestuali
- Parallelo:
- Aggiunto il supporto per la disattivazione dei blocchi giganti
- Codice di creazione del superblocco migliorato
- Implementazione specializzata
- Attuazione parziale del residente
- Implementazione della macchina cifratrice copia-e-patch del codice gnrateur de code
- Tempo di compilazione dell’integrazione
- Generazione di codice di livello 2
Il nostro obiettivo con la versione 3.13 è ridurre di almeno il 50% il tempo impiegato dall’interprete.
piano di dettaglio.
Pianificare la copia e il debug dello stampaggio di dettagli.
Abilita sub-interpreti di Python
A differenza di altre attività, che si concentrano principalmente sulle prestazioni a thread singolo, questo lavoro si basa sul lavoro GIL per compilatore fornito in Python 3.12 per consentire ai programmatori Python di sfruttare un migliore parallelismo nei sottocompilatori di codice Python (senza dover scrivere un codice C estensione).
progetto da 554 esiste già per questo lavoro. Il primo passo sarebbe aggiornarlo e chiedere una rapida approvazione in modo da poter cambiare rotta se necessario.
Migliore gestione della memoria
IL dati di profilazione Dimostra che si dedica molto tempo alla gestione della memoria e al ciclo GC. Questa frazione aumenterà solo quando acceleriamo il resto della macchina virtuale.
A differenza dei compiti precedenti, non siamo sicuri delle soluzioni appropriate, motivo per cui dobbiamo prima continuare la ricerca e la sperimentazione. Abbiamo in programma di renderlo un progetto secondario basato su ciò che abbiamo appreso dal lavoro di Livello 2 sopra.
Vogliamo
- Riduci il numero di personalizzazioni ottimizzando le strutture dati. Speriamo anche che una valutazione parziale possa ridurre il numero di oggetti temporanei, ma questo rientra nell’ambito dell’ottimizzatore di livello 2, non nella gestione della memoria.
- Dedica meno tempo ai GC. Può essere semplice come creare un minor numero di gruppi o complesso come implementare un nuovo rilevatore di cicli incrementali.
“Creatore di problemi. Appassionato di social media. Appassionato di musica. Specialista di cultura pop. Creatore.”