Dopo anni di Gecko era il momento di cambiare e proporre una soluzione più performante. Nel mese di Novembre Mozillaha rilasciato Firefox 57, la prima versione basata sull’engine Quantum. Scritto in Rust e C, ha velocizzato incredibilmente il software. Ed ora è tempo di annunciare il successore: Firefox 58.
La procedura di aggiornamento automatica è già cominciata e Mozilla ha rilasciato l’annuncio ufficialesul proprio blog. I sorgenti sono scaricabili dal sito FTP di Mozilla. Firefox 58 promette di essere ancora più veloce del proprio predecessore, soprattutto grazie ad alcune tecnologie sviluppate in questi mesi dagli sviluppatori.
Firefox 58: arriva il doppio compilatore
Con l’arrivo di Firefox 58 la società promette un ulteriore incremento della velocità di navigazione. Come? Grazie a due nuovi compilatori, uno dedicato allo streaming dei dati, l’altro a WebAssembly. Con queste due modifiche, il browser sarà in grado di tradurre il codice molto più rapidamente rispetto al passato.
Il compilatore WebAssembly, secondo i test interni condotti da Mozilla, permette al browser di compilare dai 30 ai 60 Mbyte di codice WebAssembly al secondo, senza tempi morti. La compilazione può infatti iniziare anche mentre il download del codice è ancora in corso (tecnica detta streaming compilation).
Il nuovo compilatore funziona a due livelli: il primo è quello che ottiene una compilazione veloce, senza troppe ottimizzazioni, per garantire che l’esecuzione del codice avvenga presto. L’altro compila il codice più lentamente, ma crea codice maggiormente ottimizzato.
Un’ulteriore soluzione importante è una tecnica che permette di mantenere in una cache la rappresentazione interna del codice JavaScript. Questo permette di accedervi con maggiore velocità.
Grazie a queste innovazioni, Mozilla ritiene che il collo di bottiglia si stia spostando dalla rete alle CPU, gravate di calcoli. Oggi, infatti, le reti sono per lo più molto veloci, ma al processore occorre tempo per effettuare il parsing e la compilazione della gran quantità di codice JavaScript che è presente in (quasi) ogni sito web.
[su_app]