The new compiler should result in a significant speed boost

Nov 27, 2012 08:46 GMT  ·  By

Firefox 18 beta has landed. Compared to Firefox 17, there's actually stuff to be excited about. The biggest addition is the IonMonkey JavaScript engine, technically a JavaScript JIT (just in time) compiler. It replaces JagerMonkey and is the most complex technology of its kind Mozilla ever created.

The big improvement over the previous engines is a new processing step, JavaScript code is not simply compiled into machine code, after the code is first transformed, IonMonkey analyzes it again and does some further optimization.

The existence of this intermediate representation of the code and the optimizations done to it result in some big improvements over the previous JIT.

"IonMonkey is a huge step forward for our JavaScript performance and our compiler architecture," Mozilla's David Anderson explained when IonMonkey was first enabled in Firefox 18.

"But also, it’s been a highly focused, year-long project on behalf of the IonMonkey team, and we’re super excited to see it land," he added.

IonMonkey was made the default when Firefox 18 was in the Nightly channel, you can read our coverage with more details here.

It's better than what the initial benchmarks would indicate, the current IonMonkey serves as the basis for what's to come, the technology will be improved and optimized.

Starting with a powerful engine means Firefox will get faster and faster for some time to come.

In fact, IonMonkey is easy to improve by virtue of its design, the team can implement new or different optimization algorithms without any changes to IonMonkey itself. This freedom for experimentation should lead to much bigger performance improvements than before.

Chrome started the JavaScript race and for good reason, browsers were very slow just a few years ago. Since then, JavaScript performance has increased by leaps and bounds, all modern browsers are now a lot faster than they were four years ago.

In fact, they're so fast that the improvement rate is starting to slow down, not necessarily because there's not much left to be done, but because at this point JavaScript is fast enough for most web apps.