vendredi 21 mai 2010

Frogs, stability and performance

Frog, by Lawrence Whittemore, used under CC-BY-ND license

Frog, by Lawrence Whittemore, used under CC-BY-ND license

Can you picture a bright sunny Sunday, with kids organizing a frog race? The frogs progress by leaps and bounds. Sometimes the one on the left seems to be winning, sometimes it's the one on the right. Then the one in the middle makes a nice leap and becomes the leader, even if it seemed a second ago that it was lagging.

This is pretty much what's happening right now on the Web browser market. On one side, there is the Microsoft frog, making small and rare bounds. it's making progress, but it's still the last of the race. Then there is the smaller Firefox frog, who jumps more frequently. And finally, there is a new frog — Chrome — who challenges the former challenger. The competition becomes more interesting suddenly.

Of course, there is a limit to this metaphor. Competition in the browser space is not happening in a single dimension. There are several aspects to the competition:

  • User experience
  • Page load performance
  • JavaScript performance
  • Start-up time
  • Stability
  • Security
  • Innovation in features
  • Extensibility
  • Standards support
  • … and many others.

Anyway, the general idea carried by the frog race metaphor is valid: each release of a given browser can change the race configuration, as the newest browser can out-perform the other in one or more categories of the race.

The next leaps for Firefox? Stability and performance

Mozilla is working hard on two "leaps".

First, Firefox 3.6.4 will improve stability in a very significative way, with some performance gains. This version will look exactly like 3.6.*, but it will handle plug-ins (such as Flash, Quicktime and Java) in a separate process (only for Windows and Linux for now, Mac version to come). No changes in the user interface, but significant progress in terms of stability. The issue with current versions of Firefox is that when a plug-in crashes, it crashes Firefox at the same time. Let's say you're playing Farmville[1], which is a Flash app, then it crashes. The impression that you get is that Firefox crashed. It did, actually, but it was stable until Flash made it crash. The issue is that Mozilla has no way to make plug-ins more stable, as we don't have access to the source code. So starting with 3.6.4, plug-in crashes won't affect Firefox anymore[2]. This version is planned for June 2010, which is very soon.

Second — and most importantly — is Firefox 4. I encourage you to read Mike Beltzner's post about Firefox 4: fast, powerful, and empowering. I have also a PDF version of his slide deck (2.6MB).

To make a long story short, Firefox 4 will be:

  • Fast ("super-duper fast", to quote Mike)
  • Powerful: enabling new open, standard Web technologies (HTML5 and beyond!),
  • Empowering: putting users in full control of their browser, data, and Web experience.

Firefox 4 is scheduled for "whenever it's ready", and we plan to have it ready around the end of 2010 (that's somewhere between November 2010 and… early 2011)

Now I would like to focus on platform speed (I encourage the readers that are allergic to technical details to jump stright to the conclusion[3].)

We're working on several fronts here:

  1. New HTML 5 parser. This means a new generation parser really written to handle HTML 5. It will run in a separate thread so the the UI is more responsive. Its code will be cleaner and easier to maintain than our existing parser (which dates back to the early Mozilla days).
  2. New JavaScript engine, JaegerMonkey, combining Method-based tracing used by Webkit and JIT-tracing from our TraceMonkey engine. To make things even better, our garbage collector is also being significantly improved.
  3. Using the GPU to do a bunch of things such as video decoding and display, hardware compositing and scrolling, text rendering and drawing. This will take some serious load off the CPU so that the whole browser runs faster.
  4. Startup time. It's already much better on the Mac, and it will be improved on Windows. (See Dietrich's numerous performance updates.)
  5. ''Limiting disk I/O. As CPUs get faster and faster, disks do not make as much progress, especially on laptops on mobiles. So we're working on limiting disk I/O in a very significant way (we're aiming at cutting it in half for the main thread!). This will improve Firefox' responsiveness in a very significant way.
  6. Other optimizations, such as DOM performance (important for dynamic HTML), of which we'll talk more later.

So here is what Mozilla is already working on for the two important topics that are stability and performance. In future posts, I'll discuss the changes in terms of user interface, upcoming features, and new cool toys for Web and add-ons developers (new technologies and tools). In the meantime, if you want to get a taste of the future, please join us and test future versions of Firefox:

I can't predict which other "frog" is going to make another leap, and how large it will be. But be assured that the Firefox proverbial frog has a lot ready to deliver, and it will deliver very soon!


[1] Like 80 million people in the world.

[2] You'll have to reload the page that contains the crashing plug-in, of course. But Firefox and the other tabs won't be affected at all.

[3] In short, people were wondering if Firefox was a read panda or a fox, but now we're told it's actually a frog. ;-)

jeudi 6 mai 2010

En vrac et en retard, depuis la Californie

jeudi 15 avril 2010

En vrac

lundi 15 février 2010

En vrac

mardi 28 juillet 2009

En vrac