Python 3.12: Novità e miglioramenti presentati da Meta

da Redazione
0 commenti 2 minuti leggi
Meta, Python 3.12, Oggetti Immortali, Pyre, ottimizzazioni, eager asyncio tasks, benchmark, Cinder, JIT, PEP 703, GIL

Meta ha svelato dettagli sul recente rilascio di Python 3.12, evidenziando le nuove funzionalità e ottimizzazioni che hanno contribuito a sviluppare per rendere Python più scalabile e performante.

Oggetti Immortali e miglioramenti del sistema di tipi

Una delle caratteristiche salienti introdotte è quella degli “Oggetti Immortali”, che permettono di creare oggetti Python che non partecipano al conteggio dei riferimenti e vivono fino alla chiusura dell’interprete Python. Questa funzionalità è stata sviluppata per ridurre l’uso della memoria e per avvicinarsi a oggetti Python veramente immutabili che possono essere condivisi tra diversi interpreti Python senza la necessità di bloccarli.

Il team di ingegneria dietro Pyre, un controllore di tipo Python open source, ha introdotto un nuovo decoratore “@typing.override” per evitare bug durante la rifattorizzazione di gerarchie di ereditarietà di classi che utilizzano la sovrascrittura dei metodi.

Ottimizzazioni delle prestazioni e nuovi benchmark

Python 3.12 introduce diverse ottimizzazioni delle prestazioni, tra cui comprensioni più veloci e l’implementazione di “eager asyncio tasks” per ridurre l’overhead nella programmazione asincrona. Inoltre, è stato introdotto un nuovo opcode “LOAD_SUPER_ATTR” per ottimizzare il codice del tipo “super().attr” e “super().method(…)”.

Annunci

Durante il ciclo di sviluppo di Python 3.12, Meta ha contribuito con nuovi benchmark al Python Performance Benchmark suite per rappresentare meglio le caratteristiche di carico di lavoro che osservano internamente.

Ganci Cinder e oltre Python 3.12

Meta ha condiviso il lavoro svolto su Python e CPython attraverso il loro runtime Python open source, Cinder. Per Python 3.12, hanno proposto e implementato diverse nuove funzionalità, tra cui API per impostare il punto di ingresso vectorcall per una funzione Python e “dictionary watchers”, “type watchers”, “function watchers” e “code object watchers” per notificare il JIT Cinder di eventuali cambiamenti dinamici.

Python svolge un ruolo significativo in Meta, essendo una parte fondamentale della loro infrastruttura, compreso il server Instagram. Meta continua a lavorare con la comunità Python, discutendo proposte come la PEP 703 per rimuovere il GIL e permettere a Python di funzionare in più thread in parallelo.

Si può anche come

MatriceDigitale.it – Copyright © 2024, Livio Varriale – Registrazione Tribunale di Napoli n° 60 del 18/11/2021. – P.IVA IT10498911212 Privacy Policy e Cookies

Developed with love by Giuseppe Ferrara