Mozilla Firefox aumenta le prestazioni di JavaScript

Gli utenti Firefox possono aspettarsi prestazioni JavaScript migliorate nel browser Firefox 83, con l'aggiornamento Warp per il motore JavaScript SpiderMonkey abilitato per impostazione predefinita.

Chiamato anche WarpBuilder, Warp migliora la reattività e l'utilizzo della memoria e accelera il caricamento delle pagine apportando modifiche ai compilatori JiT (just-in-time). L'ottimizzazione di JiT è stata modificata per fare affidamento esclusivamente sul formato bytecode lineare semplice CacheIR, in particolare, i dati CacheIR raccolti dai livelli di base. La nuova architettura sfruttata nel browser è anche descritta come più manutenibile e sblocca ulteriori miglioramenti di SpiderMonkey.

Firefox 83 è stato pubblicato in beta il 20 ottobre e dovrebbe essere rilasciato il 17 novembre. Warp ha dimostrato di essere più veloce di Ion, il precedente JiT di ottimizzazione di SpiderMonkey, incluso un miglioramento del 20% sul tempo di caricamento di Google Docs. Anche altri siti Web ad alta intensità di JavaScript come Netflix e Reddit hanno mostrato miglioramenti.

Basare Warp su CacheIR ha consentito la rimozione del codice in tutto il motore necessario per tenere traccia dei dati di inferenza di tipo globale utilizzati da IonBuilder, con conseguente aumento della velocità. Sebbene IonBuilder e WarpBuilder producano entrambi Ion MIR, una rappresentazione intermedia utilizzata dal back-end JiT ottimizzato, IonBuilder aveva un sacco di codice complesso non necessario in WarpBuilder. Warp può anche fare più lavoro fuori thread e necessita di meno ricompilazioni. I piani prevedono continue ottimizzazioni su Warp, che attualmente è più lento di Ion su alcuni benchmark sintetici.

Warp ha sostituito il front-end - la fase di costruzione MIR - di IonMonkey JiT. I piani prevedono la rimozione del vecchio codice e dell'architettura, cosa che probabilmente accadrà in Firefox 85. Di conseguenza sono previsti ulteriori miglioramenti delle prestazioni e dell'utilizzo della memoria. Mozilla continuerà inoltre a ottimizzare in modo incrementale il back-end di IonMonkey JiT, poiché Mozilla ritiene che ci sia ancora spazio per miglioramenti per i carichi di lavoro ad alta intensità di JavaScript. Inoltre è in fase di sviluppo uno strumento per sviluppatori web e Mozilla per esplorare i dati CacheIR per una funzione JavaScript.