In Firefox un compilatore JIT aggiornato, con nome in codice WarpBuilder. Per attivare il nuovo JIT in about:config è disponibile l'opzione «javascript.options.warp».
Si segnala che WarpBuilder è solo il primo passo verso l'integrazione nel browser di nuove ottimizzazioni, che si prevede realizzare nel corso del prossimo anno.
Il nuovo JIT consente di aumentare le prestazioni del motore JavaScript SpiderMonkey grazie alla riduzione delle informazioni interne sui tipi, monitorate all'interno del motore, e all'applicazione della tecnica di caching del codice intermedio (CacheIR), precedentemente nel traduttore di bytecode «baseline», che occupa una posizione intermedia tra il traduttore standard e il compilatore JIT anticipato. Le modifiche indicate hanno semplificato notevolmente l'architettura JIT, migliorato la reattività, ridotto i tempi di caricamento delle pagine e diminuito il consumo di memoria.
, il che ha permesso al nuovo JIT di risolvere molti problemi del vecchio JIT IonBuilder, come:
- Complessità di implementazione e potenziali problemi di sicurezza;
- Oneri aggiuntivi per il codice Baseline/C++;
- Specializzazione eccessiva, che porta a ricompilazioni non necessarie;
- Generazione di codice intermedio (Middle-level IR) nel flusso principale (in WarpBuilder, la compilazione principale del codice intermedio è stata spostata in un flusso separato);
- Ulteriore consumo di memoria per memorizzare dati sui tipi e gruppi di oggetti (ObjectGroups).
In media, nei test che valutano le prestazioni basate su metriche visive, l'utilizzo di WarpBuilder ha mostrato un'accelerazione del 5-15%. La velocità di esecuzione del test Speedometer è aumentata del 10%. I test su siti reali hanno mostrato una riduzione del tempo di caricamento di Google Docs su , valore nell'apertura della sezione Android su Reddit è migliorato di , pdfpaint è diventato più veloce su . Il consumo di memoria nel test è diminuito dell'8%. nelle statistiche degli strumenti per sviluppatori (devtools perf) hanno inoltre mostrato una riduzione del consumo di memoria dell'8%.
Fonte: opennet.ru
