Making Firefox faster for humans

User experience designers Alex Faaborg and Alexander Limi are looking to broaden the scope of efforts to make Firefox faster. Until recently, most of the effort has involved reducing the computation time needed to launch Firefox or render a web page. Faaborg and Limi argue that we should also look for ways to make computation time matter less.

The wiki page Perceived Performance contains a long list of ideas. Don't be fooled by the "perceived" part of the name: although a few of the ideas would merely make Firefox users happier, most of the ideas are aimed at reducing the amount of time users spend waiting for Firefox to do various things.

Common themes include:

Improve handling and feel during input. For example, letting scrolling "accelerate" makes rapid scrolling easier without harming the ability to make fine adjustments.

Give instant feedback in response to input, even if an operation has to continue in the background. In addition to reducing human waiting time, these fixes make the experience feel more like direct manipulation and less like telling Firefox what to do. (See also: "snappiness" bugs.)

Allow users to interact with partially loaded pages sooner. This is especially important with slow connections, which are becoming common again as computing goes mobile. Boris Zbarsky's interruptible reflow work is likely to help, and I added some ideas about making better use of the cache.

Reduce the number of clicks and keypresses needed for the most common interactions.

Give users new tools that let them avoid waiting. The introduction of tabbed browsing made it matter less when pages loaded slowly, by letting users load links in background tabs while continuing to read, but also introduced new problems.

Diminish frustration when slowness can't be helped by making changes to activity indicators, progress bars, and other messages. Give users the impression that Firefox is working hard, and help users make better choices about whether to wait.

What kinds of slowness do you encounter while using Firefox? Where should we focus performance efforts, whether by reducing computation time or through more clever means? Can you think of new ways to apply the themes above, or any other ways to make Firefox faster where it matters?

39 Responses to “Making Firefox faster for humans”

  1. David Says:

    Most of Firefox is slow. Separate everything out into threads or processes so that random actions don’t hang the entire browser. Also, make things faster across the board. I can’t think of any operations that are performant right now.

  2. Mardeg Says:

    @David: In the works – https://wiki.mozilla.org/Content_Processes

    One of the most common requests in the IRC channel is, via extension or otherwise (before the release version that has Content Processes), a way to stagger sessionrestore on restart when people have 100+ tabs loading so the perceived UI responsiveness improves.

  3. Alexander Limi Says:

    Mardeg,

    Your suggestion is already on our radar, and tracked here:

    https://bugzilla.mozilla.org/show_bug.cgi?id=496458

    Keep the suggestions coming!

  4. johnjbarton Says:

    Top of my list:
    fix the arrow keys and page-up/page down.
    fix text selection so we can actually select text the same year we want it.
    fix the download dialog so I can drag directly out of it, not Open Containing Folder first.
    adopt Open In Browser and fix it so images, text, html, any resource the browser can understand can open in the browser with in click; put that click in the context menu.
    Fix the loading paradigm: all the stuff Steve Souders tells devs should be in Firefox.

  5. Alex Says:

    One of my pet peves.. is if I am loading a page.. then suddenly decide to type in a different URL.. the bar will suddenly delete it all if the page completes loading.

    I wish I knew that I was working in that area.. and didn’t clear it unless I clicked off of it.

  6. Anonymous Says:

    Hi Jesse read your post and something struck me. IMO Paste and go and Paste and search should be built into firefox as it has helped reduce 1 action for me for quite a while now and its importance can be seen by it being included by default in Opera and Chrome

  7. Michael Lefevre Says:

    It’s already on the wiki, although you didn’t mention it in your post, but I think the most important thing is startup time. My home PC (which is several years old) takes 30 seconds to start Firefox (from cold, but including after being hibernated). The computers in my office take 15-20 seconds to start Firefox, and as there is no decent feedback (Windows displays the sand timer for some of it) people often click the icon more than once, so eventually Firefox appears with several windows up. If the start up can’t be made 10 times faster, then at least give some feedback.

  8. Arc Says:

    What Alex said and the fact that for some reason events are ordered differently in chrome versus content. This only happens when my computer is ‘overloaded’ (compiling, etc) but it’s still annoying:
    Scrolling the tab bar for example and clicking one of the tabs during a “hick-up” won’t result in the tab you clicked on being chosen, instead whichever tab is at that location after the scroll has finished is chosen, this is especially annoying when middle-clicking.
    Whereas, when scrolling a page, the click event always results in the correct target.

    @Anonymous
    You can ‘paste and go’ by middle-clicking the favicon to the left of the address-field; though, for some reason they have chosen to not allow ‘paste and search’ that way.
    In the meanwhile, there are of course extensions available
    https://addons.mozilla.org/en-US/firefox/addon/3201

  9. Boris Says:

    John, can you please file a bug with steps to reproduce on your selection performance problem? cc me.

  10. Jesse Ruderman Says:

    Here’s what John said to me about text selection:

    “The drag-select operation itself is fast, but actually getting the text you want on real pages is hard. You have to try several times, so even though each try is fast, the total operation is slow.”

  11. Archaeopteryx Says:

    1. The shutdown of Firefox takes a huge amount of time, between 2.5 and 5 minuten per CPU hour used during the session. It suddenly started (in June 2008?), the bug is https://bugzilla.mozilla.org/show_bug.cgi?id=479148
    2. Firefox’ virtual size of memory consumption only knows the way up, between 1.2 and 1.4 GB it significantly slows the system (1 GB RAM) and I prefer a Firefox restart.
    3. I have short hangs if I use the tabulator to jump through input / textarea fields. Maybe related to the five dictionaries installed?
    4. Moving bookmarks. Adding has improved very well in 3.5, but moving is still slow.

  12. Josh Matthews Says:

    A way to delete a previously downloaded file (not simply the entry) from the download list would be appreciated.

  13. carolyn coyle Says:

    I hate the slow start up ,It takes for ever ,some times I click twice thinking I haven`t already do so.

  14. Jake Munson Says:

    Improve performace /surrounding/ the flash plugin. I know Mozilla doesn’t make the flash plugin, but I constantly see problems with pages that use Flash, and how it interacts with the rest of the browser. It seems to me that Mozilla could improve some things there (or work with Adobe to improve it).

    I know many Mozilla people are anti-flash. I am too. But we have to face the fact that the majority of the web has flash content these days (it seems). Hating flash is not going to change that. So while we wait for things to change (if they ever do), we can improve the web for flash related content.

  15. download Says:

    I would like to see more optimization of Gecko.
    Trace-monkey was a great improvement for JavaScript speed
    but most of what JavaScript does is alter page layout. During this time
    it is blocking code execution. Gecko being able to change the page layout
    faster would significantly improve performance on DHTML type web pages.

  16. Aaron Mc Adam Says:

    Hey, I’ve been having awful slowdowns using 3.5 for my web dev. I heard somewhere that its a bug effecting Windows XP, but I hate having to go back to Firefox 3 for my work!

  17. Lester Mathew Says:

    I am getting a lot of Firefox not responding messages or I get a message Firefox has crashed and I have to wait for it to start up again. Wastes a lot of time!!

  18. frank goossens Says:

    starting firefox with multiple tabs (5 on average) at work causes;
    * 5 master password dialog boxes to appear to unlock the security device
    * 5 basic authentication popups to appear to enter proxy username/pwd

    and the more open tabs to restore, the more nervous i get.

  19. Helder Magalhães Says:

    I subscribe to Frank’s comment: one of the most annoying things in Firefox start-up (at work also) is the high number of authentication dialogs displayed for proxy and other HTTP authenticated sites I had opened from the previous session. And, given that most or all of the credentials are saved, just feels like broken (pressing “OK” a dozen times)… Note that I haven’t yet been able to crawl for possibly related bugs and/or file a new one for this weird behavior. :-|

    Another thing that has been haunting me seems to be live bookmark refresh. I have increased the refresh interval quite a bit (in about:config) but yet Firefox still appears unresponsive sometimes. I do realize that I have a high number of live bookmarks (I even switched to NewsFox for keeping up), but warning users about having many live bookmarks would be a good idea. ;-) Further research is needed in order to confirm this…

    Finally, one of the simplest and powerful recommendations was Firefox offering to selectively import data (bookmarks/plug-ins/settings/history/etc.) when upgrading the profile every time a new major/feature version (major.feature.bugfix) was upgraded to. Offering to start-up from a clean profile could also be an option. I’m convinced that part of my perceived start-up and day-to-day usage slowness feeling comes from the fact that my main Firefox installation profile is from the 2.x days… :-D That might help avoiding many (not only performance-related) issues, reported in Bugzilla and/or mailing lists, which are “solved” (usually marked invalid) by starting up from a fresh profile. :-)

  20. Patrick Finch Says:

    Great initiative.

    I think that the relative speed in starting and stopping the program really contribute to the perception that Firefox is slow. On a resonably well spec’d XP box (possibly due to a large history and number of bookmarks) it can take minutes.

  21. metalboy94 Says:

    IMO the best thing you could do is (somehow) make Firefox start faster after turning on the PC. for me it takes about 15-20 seconds, which is odd, because if i close it and then reopen it, it only takes about 3 seconds.
    also it would be nice if you could solve those compatibility issues with the yahoo/google toolbars, which make firefox start/close slower.

  22. matula Says:

    @metalboy94: do you think it should start up faster, or only making the address bar immediately visible/usable?

    i think it would be more than enough for starters, it doesn’t have to be a full featured address bar, just make bookmarklets and Google working. i always find myself almost forgetting what i was after while Firefox loads. it will load slow on this pc, but you should make the address bar immediately usable upon launch.

  23. Albert Eatock Says:

    I a novice using Firefox to avoid viruses and funding Gates.
    1) I read six newspaper on a daily basis. When I read an article and go ‘Back’, the main page comes up quickly but it takes a long time for it to come down to the article heading where I wish to continue scanning.
    2) In general,I would like to know what programs are running in the background and slowing down response.
    3) Articles on the Ottawa Citizen start off OK but then lose the last inch of
    each line for the rest of the page??
    Cheers, Albert

  24. ChrisJF Says:

    Why is it that there is a delay in going back/forward but there is no delay in switching tabs?

  25. Dave Says:

    i hate the fact that Firefox hangs up a lot sometimes, an when you ask all you get told is
    its a issue with a add-on, start FF in the safe mode an work thru your add-ons to find the one causing the problem
    well wouldnt it be a lot easier if we were told just which add-ons may cause the problem in the first place so we could start with those first

  26. frank goossens Says:

    dave; this page on mozillazine.org might be what you’re looking for?

  27. Jesse Ruderman Says:

    Why is it that there is a delay in going back/forward but there is no delay in switching tabs?

    There shouldn’t be a delay in the most common cases. There will be a delay if:

    * The server instructs Firefox not to cache anything. Banks do this so if a user walks away from a public computer after logging out, and then a bad guy hits the back button, the user won’t be surprised that data is still there. This isn’t a problem with tabs because it’s clear to the user that the data is still there.

    * You have navigated several pages (e.g. in other tabs) before clicking the back button. This is a memory/speed tradeoff, in keeping with users’ expectations of what will cause the most memory use. You can tweak this behavior by changing browser.sessionhistory.max_total_viewers.

    * The page you’re going back to uses an “onunload” handler, for historical compatibility reasons. Most pages that use “onunload” should be changed to use “onpagehide”.

    For more information, see https://developer.mozilla.org/En/Using_Firefox_1.5_caching . If you see slowness in other cases, it’s probably a bug, and we’d like to know more! Or, if you think some of our heuristics could use tweaking, that could be useful to know as well.

  28. Jesse Ruderman Says:

    Those of you who mentioned startup time will be happy to hear that at least five Firefox engineers have been concentrating on startup time lately. See https://wiki.mozilla.org/Firefox/Sprints/Startup_Time_Improvements and Vlad’s posts linked to by that page.

  29. matula Says:

    but i cannot stress enough that is shouldn’t start faster, but the addressbar have to come first. it’s the easiest tweak ever.

  30. Dave Says:

    Thanks Frank
    i have never seen that site before

  31. Sagacious Himself -- brevity in circumlocution - suffering genius Says:

    abstraction layer. windows got it firefox don’t…

    It’s three versions overdue.  Firefox needs an extension referee: something to assure exensions, especially poorly designed extensions, play nicely.
    Something that compensates for feature collision.  What do you do when three extensions interact …

  32. ChrisJF Says:

    I should have been more specific. When I click the back button, certain elements on the page have to load (i.e. images). I say load because the progress bar appears at the bottom of the screen for about half a second. Switching tabs is instantaneous. I assume this is due to Firefox selectively dumping from memory the most heavy parts of the page. But with tabs, the whole page is constantly kept in memory (as long as the tab stays open and you access it every so often). I think the same rules should apply to going back (with the few exceptions you mentioned above). After all, the vast majority of users have less than 10 tabs open at a time. Computers today are a lot more powerful than they were when Firefox 1.5 came out. Tweaking the heuristic I think is the right approach. Unfortunately I don’t know the specifics of that but I think you get my point.

    Thanks for replying!
    -Chris

  33. Glen Says:

    Frank & Helder,

    See https://bugzilla.mozilla.org/show_bug.cgi?id=348997.

    Glen.

  34. WebDevGeekly » Blog Archive » Episode 17 Says:

    […] Git book freely available Improving perceived performance Computing with Web Workers Drag and Drop from Desktop to Web Application ChromeOS roundup Eric […]

  35. Jesse Ruderman Says:

    The WedDevGeekly segment mentioning Firefox’s perceived-performance effort starts at 21:10. I like this quote: “I just like the whole idea of perceived performance, as opposed to ‘actual real performance’, whatever the hell that means.” They also talked about how web sites can improve their perceived performance.

  36. Jesse Ruderman Says:

    Alex Faaborg is back from vacation and has posted a blog entry on this topic:

    Sure it’s Fast, But How Does it Handle?

  37. Jesse Ruderman Says:

    Margaret’s scrolling acceleration work has landed!

  38. Jesse Ruderman Says:

    One of my pet peves.. is if I am loading a page.. then suddenly decide to type in a different URL.. the bar will suddenly delete it all if the page completes loading.

    I wish I knew that I was working in that area.. and didn’t clear it unless I clicked off of it.

    Could this be due to bug 317056? Or because of the timing with which Firefox adds “http://” to the address bar after a URL is typed?

  39. Helder Magalhães Says:

    Well, seems that frank’s (which I seconded in my first hint also) prayer was listened to: bug 475053 was fixed. I didn’t yet double checked for sure if the symptoms went away, but posting an update seemed useful… :-)