Mozilla introduce JaegerMonkey per velocizzare JavaScript

Mozilla Firefox prova a recuperare il terreno perduto a proposito di esecuzione di codice JavaScript.

Mozilla Firefox prova a recuperare il terreno perduto a proposito di esecuzione di codice JavaScript. E lo fa introducendo nelle cosiddette “nightly builds” del nuovo Firefox 4.0 una nuova caratteristica, conosciuta con il nome di JaegerMonkey (o “JägerMonkey“). L’obiettivo è quello di sveltire l’esecuzione delle porzioni di codice JavaScript, frequentissime nelle pagine web, portando Firefox a misurarsi “alla pari” con i principali browser concorrenti.

Di JaegerMonkey si parla già dall’inizio dell’anno: il meccanismo si occupa di compilare interi metodi JavaScript sotto forma di codice macchina. Allo stato attuale, infatti, il codice JavaScript che non appare ottimizzabile mediante l’uso di TraceMonkey (il motore JavaScript che Mozilla ha fatto debuttare con il lancio di Firefox 3.5, nel mese di giugno 2009), viene passato allo “storico” interprete di Firefox (SpiderMonkey) il quale garantisce performance ormai mediocri.
TraceMonkey tenta di velocizzare l’esecuzione di codice JavaScript rilevando la presenza di cicli loop e convertendoli in assembler generico. Ci sono però situazioni in cui questo approccio non funziona: in tali casi Firefox chiama in causa il vecchio interprete SpiderMonkey, ormai superato (in questi frangenti il codice viene purtroppo eseguito con le prestazioni dei prodotti antecedenti alle versioni finali di Firefox 3.5, Safari 4, Google Chrome e così via).

Altri motori per la gestione di codice JavaScript compilano l’intero codice, e non solamente i cicli loop, ottenendo codice assembler. Il motore “Nitro” utilizzato da Apple Safari, ad esempio, sfrutta tale approccio ma – stando a quanto dichiarato dai responsabili di Mozilla – non può competere con la velocità di TraceMonkey quando quest’ultimo entra in gioco.

Abbinando JaegerMonkey, TraceMonkey continuerà a convertire in assembler i loop ma quando ciò non risultasse possibile, il nuovo motore applicherà l’approccio usato da “Nitro” in Apple Safari.

Rob Sayre, ingegnere e sviluppatore Mozilla, ha già pubblicato i risultati ottenuti durante i primi test di JaegerMonkey. Il “gap” tra Firefox e gli altri browser concorrenti, sembra essersi nettamente ridotto rispetto al passato (il più performante resta Opera 10.6x, seguito da Chrome 6.0.x e dalla preview 3 di Internet Explorer 9.0). Sayre ha voluto comunque precisare: “siamo in procinto di applicare altre migliorie“.

La prossima versione di anteprima, non definitiva, di Firefox 4.0 (la “beta 6”) dovrebbe essere distribuita nel corso della seconda metà di settembre. Mozilla non si è ancora espressa circa la data di rilascio della versione finale del prodotto che, tuttavia, non dovrebbe arrivare prima della fine dell’anno.

Ti consigliamo anche

Link copiato negli appunti