Mozilla heeft voor Firefox een nieuwe just-in-time-compiler gebouwd voor het verwerken van javascript. De zogenaamde IonMonkey-engine zou aanzienlijk beter presteren dan de huidige JägerMonkey-engine en moet in Firefox 18 verschijnen.
In een posting van Mozilla-ontwikkelaar David Anderson wordt gesteld dat er een nieuwe stap wordt toegevoegd aan het compileren van javascript volgens de just-in-time-methode. Bij oudere compilers wordt direct een binary gecompileerd van de javascriptcode, terwijl IonMoney net als Java eerst een intermediate representation genereert. Deze representatie van de code kan vervolgens geoptimaliseerd worden nog voordat de uiteindelijke binary wordt gecreëerd. Daarbij wordt gebruik gemaakt van technieken als loop-invariant code motion, sparse global value numbering en linear scan register location.
/i/1347462768.png?f=thumb)
/i/1347462769.png?f=thumb)
IonMonkey is in Firefox 18, de huidige Nightly, tot 26 procent sneller dan de 'oude' javascript-engine in Firefox 15 bij het draaien van Mozilla's eigen Kraken-benchmark, zo blijkt uit metingen van Anderson op zijn Mac Pro. In V8, een benchmark van Google, zou IonMonkey 20 procent beter presteren.
Volgens Anderson heeft de nieuwe compilermethodiek niet alleen een groot snelheidsvoordeel, maar kunnen ontwikkelaars relatief eenvoudig nieuwe optimalisatie-algoritmen toevoegen om nog meer winst te boeken. IonMonkey zal op alle platformen waarop Mozilla browsers bouwt gaan draaien en uiteindelijk beschikbaar komen in Firefox 18. Deze moet begin 2013 uitkomen.