Related topics

Mozilla man: Firefox 4 will leapfrog JavaScript rivals

Eyebrow raised at Google dev cycle overdrive

Mozilla director of web platform Chris Blizzard says that when Firefox 4 debuts, its JavaScript performance will be "one generation" ahead of all other browsers.

The open source outfit is working to enhance the Firefox JavaScript engine via a new extension dubbed JägerMonkey. With the debut of Firefox 3.5 last year, Mozilla significantly juiced JavaScript performance with a "tracing" compiler known as TraceMonkey, but not all JavaScript code is suited to this technique, which works to convert code loops into speedy assembly language. JägerMonkey aims to improve performance when tracing doesn't apply.

"What we've seen is that in places where our Tracing-Engine gets used we are actually faster than anyone else, it's just in those cases where it doesn't fit that others do a lot better," Blizzard told derstandard.at during an interview at a Linux desktop conference in the Netherlands. "So we're trying to improve our baseline performance and combine that with the Tracing-JIT, with this we'll be one generation ahead of everyone else."

Previously, Mozilla had said that its goal with JägerMonkey was to make Firefox at least as fast as the competition. Currently, Firefox has fallen behind the likes of Chrome, Opera, and Internet Explorer 9 on JavaScript benchmarks such as SpiderMonkey and Google's V8, but Blizzard sees "huge amounts" of opportunities for improvement — and even questions how reliable these benchmarks really are.

"The current generation of JavaScript-Engines has plateaued, I mean the percentage difference we are seeing between all the current browsers at the moment is not very big anyway," he said. "Also the benchmarks are not very useful anymore, as those number are mostly not influenced by real JavaScript performance anymore.

"Just to give you an example of this negative impact of benchmarks: We have to do stuff like optimizing Daylight saving time lookups because that is influencing some benchmarks negatively, so we're not doing actual JavaScript improvements here. Sunspider has these problems, V8 also consists of some crazy code, so it's hard to find some good benchmarks."

JägerMonkey is a method JIT compiler based on the Nitro assembler that's part of Apple’s open-source WebKit project, the same assembler used by Google's Chrome and Apple's Safari. TraceMonkey will continue to detect code loops and convert them into assembly code. But when code is unsuited to tracing, JägerMonkey will kick in, converting entire methods to assembly code.

Jagermonkey diagram

JägerMonkey borrows the Nitro assembler from WebKit

Firefox 4 is currently in beta, but it does not yet include JägerMonkey. The official release is set for this fall.

Much has been made of Chrome's expanding market share, but Blizzard says that Google's gains have not not caused any significant change in the number of Firefox users. He acknowledges that a good number of hardcore developers have adopted Chrome, but he believes they're still using Firefox as well. Firefox's dev tools, he says, are "far superior" to anyone else's.

"Interestingly we haven't seen our user numbers change that much, even though Chrome is having big wins in this segment. The thing is all those numbers reported are actually usage numbers and not user numbers, so early adopters —- who use the web heavily — influence those a lot more than others," he says. "So it looks like Chrome is used by more people than it actually is. The interesting thing is, we had the same effect in our early Firefox times, we just didn't realize it back then as we didn't have the proper tools for that."

Whereas Google has switched to an ultra-rapid six-week release schedule for Chrome, Mozilla continues to release a new major version of Firefox about once a year. But Blizzard defended Mozilla's setup — and even questioned how innovative Google can be on its tightened schedule. He acknowledges, however, that Mozilla needs to speed things up.

"It'll be interesting to see if anybody else than the early adopters are going to be okay with their browser changing every month and a half. We prefer to take more time to prepare people to bigger interface changes," he says. "I'm actually a little bit skeptical about a six week cycle, where do you find the time to really innovate in such a short time span? But going faster is something that we definitely would like to do too, we just have to figure out the right pace for us."

Blizzard also added that Firefox 4 will be "multi-process" — i.e., it will not run separate tabs in separates processes. Mozilla has already added out-of-process plug-ins to Firefox — where certain plug-ins run in their own processes — but Blizzard says that multi-process will likely arrive on mobile versions of Firefox before the desktop version. ®

Sponsored: Designing and building an open ITOA architecture