Maggio 2, 2024

Laredazione.eu

Trova tutti gli ultimi articoli e guarda programmi TV, servizi e podcast relativi all'Italia

Svelato il business plan per una futura release di Python 3.13 che mira a ridurre di almeno il 50% il tempo impiegato dall’interprete oltre a una migliore gestione della memoria.

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).

READ  Microsoft gestirà gli annunci su Netflix

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.

piano di dettaglio.

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.