Le prestazioni della compilazione JIT sono state notevolmente migliorate nelle build notturne di Firefox

В costruzioni notturne Firefox acceso compilatore JIT aggiornato, sviluppato nome in codice WarpBuilder. Per abilitare il nuovo JIT, l'opzione "javascript.options.warp" viene fornita in about:config.
Va notato che WarpBuilder è solo il primo passo verso l'integrazione di nuove ottimizzazioni nel browser, la cui implementazione è prevista nel corso del prossimo anno.

Il nuovo JIT migliora le prestazioni del motore JavaScript SpiderMonkey riducendo le informazioni sul tipo interno tracciate all'interno del motore e utilizzando la tecnica Intermediate Code Caching (CacheIR) precedentemente proposto nell'interprete di bytecode "baseline", che occupa una nicchia intermedia tra un interprete normale e un compilatore pre-JIT. Queste modifiche hanno permesso di semplificare significativamente l'architettura JIT, aumentare la reattività, ridurre i tempi di caricamento delle pagine e ridurre il consumo di memoria.

È notatoche il nuovo JIT ha risolto molti problemi del vecchio JIT IonBuilder, come ad esempio:

  • Complessità di implementazione e potenziali problemi di sicurezza;
  • Overhead aggiuntivo per il codice Baseline/C++;
  • Eccessiva specializzazione che porta a ricompilazioni inutili;
  • Generazione del codice intermedio MIR (IR di livello medio) nel thread principale (in WarpBuilder, l'assemblaggio principale del codice intermedio è posizionato in un thread separato);
  • Consumo di memoria aggiuntivo per l'archiviazione di dati su tipi e gruppi di oggetti (ObjectGroup).

In media, nei test che valutano le prestazioni in base a metriche visive, si osserva un aumento di velocità del 5-15% quando si utilizza WarpBuilder. Il tasso di completamento del test del tachimetro è aumentato del 10%. I test su siti reali hanno mostrato una riduzione del tempo di caricamento di Google Docs di 20%, indice Indice di velocità all'apertura della sezione Android su Reddit migliorata da 13%, pdfpaint ha iniziato a funzionare più velocemente 18%. Consumo di memoria nel test tp6 diminuito dell'8%. indicatori anche le statistiche negli strumenti di sviluppo (devtools perf) hanno mostrato una riduzione dell'8% nel consumo di memoria.

Fonte: opennet.ru

Aggiungi un commento