Normally, one would not expect a posting about a performance-related bug in
pre-release software to generate a great deal of interest. But when LWN pointed to a weblog entry
describing the Firefox 3 fsync()
bug, the result was (at last
count) over 90 comments. Clearly something is going on here to stir up
this level of conversation. It's not clear that all participants are
taking away the right conclusion, though.
Firefox 3 uses the sqlite database, as do
a number of other applications.
In this case, the database is being used to store the user's browsing
history; an active user can create quite a bit of database traffic in a
short amount of time. As part of updating the database, sqlite will call
fsync() to ensure that the data gets to the disk. All fairly
normal stuff which shouldn't create trouble for anybody.
Except it does create trouble because (1) these fsync() calls are
made frequently, and (2) Linux filesystems do not handle
fsync() as well as they should. As a result, heavy use of
Firefox 3 on a Linux system can cause the system as a whole to perform
poorly. It's clearly an issue that the Firefox developers need to fix,
even if it's not entirely their fault. And it appears that they do,
indeed, plan to fix it.
One could argue that Firefox 3 should never have gotten as far as a release
candidate with this sort of bug unfixed. The problem was first reported in
early March, but the conversation did not get going in earnest until late
April. So there was not a whole lot of time to figure out a fix for the
More justifiably, it could be said that the developers' consideration of
shipping the final release with this problem unfixed was insensitive to the
needs of Linux users. The notion that they would bless distributors who
patched the problem themselves does not help much in this regard. That
thought does raise an interesting question, though: what would have
happened if Mozilla did not bless a patch, then denied use of the "Firefox"
trademark to distributors who fixed the problem anyway? But all of this is
moot; it appears
that the Firefox developers have decided to do a second release candidate
which includes a fix for this problem.
The other common complaint has to do with why Firefox is using a relational
database in the first place. It is, arguably, a significant bit of bloat
for an already large application. The answer from the developers is that a
real database is needed to provide the kind of features that Firefox users
are asking for. As the discussion on LWN showed, there really are users
who want quick access to significant amounts of history. Your editor has,
so far, not had his socks knocked off by the "awesome bar," but other users
There is value in adding features that your users will call "awesome."
There is also value, of course, in the creation of a small and fast
application. The Firefox developers have had to chart a course between the
addition of features and keeping the overall size reasonable, and they have
taken grief for their decisions on both sides. One user's bloat is another
user's indispensable tool; it's hard to keep everybody happy. But one
generally keeps more users happy by including the features they want.
Despite all of that, Firefox 3 clearly shows the results of some attention
to performance and memory use. Your editor has not done any sort of formal
benchmarking, but a few months of use of the beta releases leads to the
conclusion that Firefox 3 is more responsive than its predecessor, and
that many of the worst memory usage problems have been addressed. It has
been a while since the days when regular restarts to combat the effects of
memory leaks were required. Firefox will never be a lightweight program -
or even a middleweight program - but it does appear that, for now, the
monster's growth has been restrained.
Firefox 3 also includes greater GTK integration, which has inspired
complaints of its own. But better integration with the Linux system has been
something users have been requesting for a while. It is hard to fault the
developers for trying to satisfy that request.
All told, it would appear that the Firefox community is trying to follow
through on its promise of better support for Linux users. They seem to be
doing what has been asked of them. In so doing, they have produced a new
major release which, for whatever faults it may have, is a real improvement
on what came before. The development process which helped to rescue the
net from proprietary software and standards continues in full swing. There
will, beyond doubt, be no shortage of things to criticize the Firefox
developers for in the future. But, before we do that, it's worth taking a
moment to back off, let them get the 3.0 release out the door, and
congratulate them for a job which is truly, in many ways, well done.
to post comments)