Mozilla TraceMonkey: JavaScript Veloce

Mozilla ha annunciato il lancio di TraceMonkey, un’evoluzione del motore JavaScript “SpiderMonkey” di Firefox che sarà incorporata e sfruttata in Firefox 3.1, la prossima versione del suo popolare browser open-source; TraceMonkey utilizza un nuovo tipo di compilatore Just-In-Time (JIT) per incrementare in modo significativo le performance JS del browser e quindi delle applicazione web JavaScript-based che girano in esso (si tratta di un incremento di prestazioni fino a 20 volte, rispetto al già ottimizzato motore integrato in Firefox 3).

Brendan Eich, Chief Technology Officer di Mozilla Corporation e creatore del linguaggio di programmazione JavaScript, ha pubblicato sul suo blog una serie di test e benchmark che dimostrano il guadagno in performance risultante dall’utilizzo di TraceMonkey; è disponibile anche uno screencast che mostra i significativi miglioramenti nella manipolazione di immagini, che si affiancano al netto guadagno nella manipolazione delle matrici, calcolato con la libreria Sylvester 3D JS.

TraceMonkey si basa sulle teorie di ottimizzazione di tracing (“trace trees”) ideate da Michael Franz e Andreas Gal, ricercatori della University of California, Irvine. Il meccanismo di tracing tiene traccia del percorso di esecuzione di runtime e genera codice compilato che può essere utilizzato successivamente quando un viene raggiunto un particolare percorso di esecuzione di codice. Questo permette di compattare i loop e le chiamate annidate ai metodi in uno stream lineare di istruzioni che si traduce in un significativo guadagno in performance, in particolare nei linguaggi dinamici e con minimo impatto sulla memoria.

Questo tipo di ottimizzazione di tracing era già stata incorporata da Mozilla in Tamarin, la prossima generazione del motore di runtime JavaScript che sfrutta la macchina virtuale Adobe ActionScript. Tamarin, tuttavia, non è ancora un progetto maturo, non offre ancora grandi vantaggi in performance, e non sarà pronto prima di Firefox 4. Per ottenere un incremento di perfomance immediato, Mozilla ha adattato la tecnologia di tracing e il Nanojit di Adobe in modo da poterli integrare direttamente in SpiderMonkey. Il risultato di questo lavoro, durato circa 2 mesi, è TraceMonkey.

Mozilla ha già incorporato TraceMonkey nel development tree di Firefox 3.1 (“Shiretoko”), impostandolo come disattivo in maniera predefinita (javascript.options.jit.content). TraceMonkey si trova ancora nelle fase iniziali di sviluppo e per questo motivo presenta ancora ampi margini di miglioramento e bugfixing.

Grafici benchmark e dettagli su TraceMonkey sono disponibili nel blog-post di Brendan Eich; ulteriori commenti tecnici sono stati offerti da Mike Shaver, Mozilla VP per l’engineering (che presto passerà in forze a Facebook).

Fonte: tweakness.net

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...