2010-11-05 // 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:
- Comfort and GUI
Things like Tab Mix Plus, Quick Locale Switcher, OptimizeGoogle, AdBlock Plus and NoScript.
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:
- 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:
- Google SSL/TLS, shortcut
g
. - Wikipedia (en) SSL/TLS, shortcut
wp
- Wikipedia (de) SSL/TLS, shortcut
wpde
- Leo.org, shortcut
l
. You can add the search engine by visiting http://dict.leo.org/ cause the website supports Open Search.
- 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.
- 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):
- Close all open Firefox windows and processes.
- 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):
-no-remote
: Enables running multiple Firefox instances with different profiles-P "Profile name as shown in the ProfileManager"
: The profile to use.
A complete command should look like one of the following:
- Unix-like:
firefox -no-remote -P "webdevelopment"
- MS Windows:
firefox.exe -no-remote -P "webdevelopment"
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.
Comments

[…] 2010:11:05:keep-firefox-fast-slim-use-different-profiles-for-different-tasks-prevent-slowdown - blog.andreas-haerter.com - IT, web and nerdy stuff […]
user_pref(“network.http.max-connections-per-server”, 16);
Don't do that. It violates the HTTP specification and might get you blocked on some hosts (like dokuwiki.org).
@Andreas Gohr: IMHO, Firefox 3 got a default value of 15 (Firefox 2 got a default value of 8). Therefore 16 shouldn't be a problem?! Mhh… I have to investigate that.
BTW: Thank god, I never got blocked on Dokuwiki.org.
@Andreas Gohr: Yes, 15 is the default in FF3 for “network.http.max-connections-per-server”. You can check if for yourself by looking at “about:config” if you don't believe me. However, I edited my blog posting.
@Andreas Haerter: Hmm. The RFC says:
A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy.
15 being default for FF3 seems like a really bad idea if the Browser really uses that much simultaneous connections as it could increase the load on the server significantly…
I'm using mod_evasive at dokuwiki.org which will block clients that have more than 8 connections simultaneously open. But I hadn't complaints by FF3 users, yet…
@Andreas Gohr: Hmm. Maybe your mod_evasive is not as strict as you think: AFAIK it is possible to configure it per child process and/or threads, data not shared between them. If the children are shutting down, the IP log should die with them. I'm not even sure if it shares across threads in the same child when done wrong. But maybe my information is outdated (I'm using Apache only in smaller, personal and non-public projects). Have you ever tested if this “8 cons per second limit” on your server is really enforced? Maybe common default configurations are more tolerant because of FOO/BAR/side-effect described on Page X in doc Y.
I mean: a hard limit of 8 would affect every FF3 user with enough CPU and a speedy connection. And larger Proxies (→ e.g. 16 connections, when two user are creating 8 connections and using the same proxy simultaneous). Even Opera got a default value of 8 connections (→ 4 times more than recommended by RFC… maybe this 11(!) years old recommendation is out of date? Don't know…).
BTW: Thanks for the new DokuWiki stable release. I'm currently updating all of my installations. DokuWiki rocks. Kudos to you!
Leave a comment…
- E-Mail address will not be published.
- Formatting:
//italic// __underlined__
**bold**''preformatted''
- Links:
[[http://example.com]]
[[http://example.com|Link Text]] - Quotation:
> This is a quote. Don't forget the space in front of the text: "> "
- Code:
<code>This is unspecific source code</code>
<code [lang]>This is specifc [lang] code</code>
<code php><?php echo 'example'; ?></code>
Available: html, css, javascript, bash, cpp, … - Lists:
Indent your text by two spaces and use a * for
each unordered list item or a - for ordered ones.
Thanks for sharing. I knew and used the 'no-remote' option but did not know about the default starting profile. Cheers