Keep your Firefox fast and slim: use different profiles for different tasks

You know the problem: tons of add-ons are bloating your Firefox. Including slower rendering speed and start-up. This is especially true if you are a web developer because there are many useful but heavy extensions you never need if you are not working on a project. Different profiles and starters/shortcuts may help you out. It works for me1) and I'm sharing my approach here (maybe it is useful for someone else).

1st: group your add-ons

I grouped all my add-ons into different categories:

  1. Privacy
    Things like RefControl, Ghostery and BetterPrivacy.
  2. Web Development
    Things like FireBug, HttpFox, Html validator and MeasureIt.
  3. Basic Security Testing
    Things like HackBar, SQL Inject Me, XSS Me and Access Me.

2nd: create different profiles

I created different profiles fitting my different tasks. Based on their usage, the add-ons and settings were allocated. I started with three profiles (“daily usage”, “web development”, “security testing”) but ended up with the following two:

  1. Daily usage/surfing:
    slim look (I want to see content, not bars), fast browsing, shortcuts for important tasks.
    • Installed all add-ons out of the “Comfort and GUI” group.
    • Installed all add-ons out of the “Privacy” group.
    • Created Shortcuts for my search engines (you can set them via searchbox→“Manage search engines…”). I deleted all default ones and ended up with:
    • I allowed more connections and activated HTTP pipelining by adding the following to the user.js:
      user.js
      //HTTP pipelining, network
      //- http://en.wikipedia.org/wiki/HTTP_pipelining
      //- http://kb.mozillazine.org/Network.http.pipelining
      //- http://kb.mozillazine.org/Network.http.proxy.pipelining
      //- http://kb.mozillazine.org/Network.http.pipelining.maxrequests
      //- http://kb.mozillazine.org/Network.http.max-connections
      //- http://kb.mozillazine.org/Network.http.max-connections-per-server
      //- http://kb.mozillazine.org/Network.http.max-persistent-connections-per-proxy
      //- http://kb.mozillazine.org/Network.http.max-persistent-connections-per-server
      user_pref("network.http.pipelining", true);
      user_pref("network.http.proxy.pipelining", true);
      user_pref("network.http.pipelining.maxrequests", 8);
      user_pref("network.http.max-connections", 48);
      //user_pref("network.http.max-connections-per-server", 16); default is 15 since FF3, no more tuning needed
      user_pref("network.http.max-persistent-connections-per-proxy", 10);
      user_pref("network.http.max-persistent-connections-per-server", 8); //default is 6 since FF3

      This should boost the rendering speed far enough.

  2. Web Development
    “vanilla” look & feel to see websites as most users see them. Rendering performance does not matter, I just need access to important tools. Cookies and history will be deleted when the browser gets closed.
    • Installed all add-ons out of the “Web Development” group.
    • Installed all add-ons out of the “Basic Security Testing” group.

Your groups and profiles may differ from mine, but keep in mind that most developer extensions2) and validators3) are really heavy in terms of performance impact, leading to a slower Firefox.

You can use the Profile Manager to create new profiles (its usage should be self-explanatory):

  1. Close all open Firefox windows and processes.
  2. Start the Profile Manager:
    • Unix-like systems: (the parameters are case sensitive!): Open a terminal:
      firefox -ProfileManager

      If this does not work, try

      firefox -P
    • MS Windows: Open a command line or use “Start\Run…” to execute:
      firefox.exe -P

      If this does not work, try

      x:\complete\path\to\firefox.exe -P

3rd: create starters/shortcuts, fine-tuning

To get quick access to your different profiles and use them in parallel, create additional starters/shortcuts on your desktop. All you need are the following Firefox parameters (parameters and values are case sensitive):

A complete command should look like one of the following:

From “Opening a new instance of your Mozilla application with another profile”:

Never use -no-remote to start the “default” profile (the one that is set to open without asking when you launch Firefox). That's because when you launch Firefox, for example, by clicking a link in your mail program, you will get a Firefox is already running but is not responding message if the default profile is already in use. The solution is to always start the default profile normally and launch all others with -no-remote. Then it will work.

If you need more help, have a look at “Opening a new instance of your Mozilla application with another profile”. The Profile Switcher add-on may fit your needs if shortcuts/starters are not handy enough for you. And you may add different themes/personas to make the profiles more distinguishable from each other.

1)
I really love my Firefox again. You don't need to switch to Chrome/Opera to get a fast browser.
2)
like FireBug, HackBar
3)
like Html validator