UPDATE (FEb. 26, 2011)
I’m using Firefox 3.6.13 now –and after some odd behavior and throwing out FireFTP (made it slow if I recall), ScribeFire (causes hangs on Firefox shutdown), Firefox Showcase (made Firefox unstable), PrefBar (proxy oddness), and ChatZilla (caused instability and increased CPU usage)– I still had some issues. So, I decided to reset the preferences file (about:config) and re-enter my choice of ‘hacks’ below (“browser.cache.memory.capacity” has disappeared and I haven’t recreated it). Firefox runs great again, with the exception of the bookmarks manager which takes minutes and freezes the app during searches (ugh!). Hint: learn to use the Awesome Bar to its full potential.
UPDATE (Jan. 2, 09): There’s a new section called “Render Pages Quickly” and I’ve had better luck by setting “browser.cache.memory.capacity” to 35000 (for a computer with 1 gig of RAM) rather than -1 (which is supposed to automatically adjust the browser cache to the physically installed RAM). I think I used 40000 on Flock because it’s even more resource intensive than Firefox.
UPDATE: Some settings were again updated (on Aug. 21, 09). They turned out to be too conservative and changing them has proved to be fruitful.
I also threw in network.http.request.max-start-delay and a “Further Fine Tuning Front-end Behaviour” section. I feel this, together with the new settings for the above, made a marked performance improvement –that and cutting down on unnecessary and infrequently used Firefox extensions, especially Extended Cookie Manager (which seemed to slow things to a crawl and can be replaced by Cookie Monster). Pipelining is also useful in speeding things up –so necessary because Firefox has never (in my estimation) been optimized for OS X, or Gnu-Linux. The latter is odd considering that when Firefox had a single digit? following, the Gnu-Linux community did so much to promote it as a reliable, flexible, and secure browser. I estimate that once Firefox was out of this red zone, they took issues with Gnu-Linux distros using their “Fox on globe” image and the use of the Firefox brand-name, so in essence Mozilla “used” the Gnu-Linux community –but that’s a long story and not part of this article.
This is really my (updated, as in now organized!) personal check list and guide to fine tuning the Firefox, Flock, & Iceweasel browsers for speed and a pleasurable surfing experience. [It could still use some editing to make it readable by the public, but that wasn’t its purpose. It was meant as a personal check-list, and if others such as computer geeks can make sense of it … well that would be all good but only secondary. Non-computer geeks are on their own. If you’re looking for a hold-your-hand guide, read Serdar Yegulalp’s well written article titled Hacking Firefox: The secrets of about:config, although somewhat dated in certain areas. This article does serve as a good theoretical review, though, as it introduces and explains a range of important concepts to tweaking Firefox (FF).
Yes, now there’s an extension (somewhere) that does some of these things, but doesn’t do it all. Plus, you lose control and, some might say, responsibility over your own “hacking” (ie., What if the installed extension doesn’t work? [and –worse– you don’t notice]). You would also miss out on the fun of hacking things on your own.
This list might be extensive –but you do not need to implement it all –depending on your needs and/or likes. I hope others find this helpful, as I have.
I’ve taken care to single quote verbatim material and give credit to sources below each section. Personal comments on this quoted material are contained by “” brackets and are somewhat anecdotal. The precise mozilla.org links below are either dead and/or have been lost in the shuffle. Googling has failed to help rediscover the original sources –if they still exist.
So without further adieu, here is my compiled list of Firefox/IceWeasel/Flock tweaks.
Speed Related Tweaks-Speed-up Navigation
‘1. In your address bar visit: about:config
2. Find: network.dns.disableIPv6. Set “true” [not in Flock off. but in Flock
3. Find: network.http.pipelining. Set “true”
4. Find: network.http.pipelining.maxrequests. Set “16”
5. Find: network.http.proxy.pipelining. Set “true”‘
‘Make pages load faster’
A. 1. Fetch only pages that you click …
network.prefetch-next … Double click it, and it will turn to false
[UPDATE: There is some dispute as to whether this slows or speeds up browsing. It is non-intrusive meaning that it prioritizes pre-fetching so that it doesn’t take away from your quality of surfing (it does not slow the loading of newer pages just to pre-fetch links on earlier loaded pages). Of course, it doesn’t prioritize with other local tasks (ie., other ongoing programs), so I expect your overall computer experience could suffer on MHz challenged boxes. I also
assume that if you have the CPU cycles to spare, it’ll work “for you” but if you don’t and you want pre-fetching enabled, then maybe you’re best to perform one power consuming task at a time, else disable it.]
B. ‘2. Limit the RAM usage’
[Have Firefox use memory based on your computer’s physical ram.]
‘browser.cache.memory.capacity … or RAM sizes
between 512MB and 1GB, start with 15000. For RAM sizes between
128MB and 512M, try 5000, and you will be happy of the result’ [-doesn’t show
up at all in any browser, although browser.cache.disk.capacity does. **].
[set to -1 in FF to automatically adjust to installed RAM, but I received better performance with a setting of 35000 with 1 gig of RAM, 40000 with Flock]
C. ‘3. Reducing the RAM usage even more when Firefox gets minimized’
‘… select New and click Boolean. A box will appear and you will have to
enter config.trim_on_minimize as value. The boolean value should be set to
TRUE’ [apparently a Windows only feature and not in Flock 0.8.0.99. on OS X **]
Speed-up Downloads (& Navigation)
‘browser.turbo.enabled true [doesn’t show up in my OS X 126.96.36.199 version of Firefox, SeaMonkey or Flock. *]
network.http.max-connections 30 [set t to 32]
network.http.max-connections-per-server 8 [set to 16]
network.http.max-persistent-connections-per-server 8 [set to 8]’
Don’t follow the nglayout.initialpaint.delay 100 advice on the sourced page (for “better” settings see below under “A Perception Related Speed Tweak”). 100 is just plain wrong because “0” (zero) makes it wait very little before displaying info (the point of this hack), while the suggested 100 would only increase this time span –an undesirable effect. Read further down on how to set this properly.
If you’re going through a proxy use the following.
network.http.max-persistent-connections-per-proxy (set to 8)
governs how long to wait before attempting to connect to a server again. Set to “0”.
A Perception Related Speed Tweak
‘3. Lastly right-click anywhere and select New-> Integer. Name it
“nglayout.initialpaint.delay” and set its value to “0” (zero). This value is
the amount of time the browser waits before it acts on information it receives.’
Render Pages Quickly
‘Large, complex web pages can take a while to download. Firefox doesn’t want to keep you waiting, so by default will display what it’s received so far every 0.12 seconds (the “content notify interval”). While this helps the browser feel snappy, frequent redraws increase the total page load time, so a longer content notify interval will improve performance.’
In about:config create an “Integer”, label it “content.notify.interval”, and set it to “500000”.
Also create a “Boolean” labelled “content.notify.ontimer”, and set to “True”.
For customizing for slow computers, or slow connections or a mix of one and another:
Mouse Wheel Scroll Speed
‘I’ve been using Mozilla’s shiny new web browser Firefox for a few days, but kept on going back to Apple’s Safari for some odd reason. Firefox just didn’t feel right. Until I realized that the problem is at mouse wheel scrolling. Firefox’s scrolling is just too fast compares[d?] to system scrolling that I am used to. [Contrary to what this writer thinks, I think Firefox’s is slow! But just the same you can use his tip to speed up Firefox’s scroll speed.]
To fix the problem, I did the following:
1. Open up Firefox and type about:config in the URL box.
2. Find the line mousewheel.withnokey.sysnumlines, set it to false by double clicking on true.
3. Find the line mousewheel.withnokey.numlines, set it to the number of lines you want to scroll at a time. This controls the scrolling speed.’
To speed up Firefox’s mouse scroll speed, I used 7. The default is 1.
Enabling Seamless Usability for the Power User
Have FireFox Show Plugin Actions
‘Download Actions preference in Firefox
The steps are outlined below:
1. Type “about:config” on the address bar to get to firefox config settings.
2. Do a filter search for “hide_plugins” and double click on “browser.download.hide_plugins_without_extensions” to change the settings value to “false”. [not in SeaMonkey]
3. Open up “Edit > Preferences”, go to the “Downloads” area and click on “View & Edit Actions”.
4. It should now list all the “File Type”. Do a search for audio and change the “MP3 audio (streamed)” to open up in the external xmms player.’
I was looking for m4a file types to be played with VLC because QuickTime plugin does not play them. I can’t find file types in Seamonkey’s preferences. Note, setting plugin.expose_full_path to “true” will list pathways of plugins in about:config
Make All Frames Resizeable and Which to Block
‘Force frames to be resizable Many sites use frames to display their contents,
and sometimes the frames are too small. To force all frames to be resizable,
use about:config to change the value of the preference
layout.frames.force_resizability to true.
Note that this will also make the frames appear with a fixed-width border
and thus, may make the pages look funny.’
‘Decide which New Windows to Block By default, all windows that a web page
wants to open will be diverted to either the current tab/window or a new tab.
However, this does not apply to small pop-up windows (e.g. a poll results
window or the ICQ window in go.icq.com). To change this behaviour so it does
“0”: Divert all new windows to current tab/window or new tab
“1”: Don’t divert any windows spawned by JS
“2”: (Default) Don’t divert JS windows that include size/placement/toolbarinfo”
I chose “0”.’
Privacy and Security
1. Don’t leak the name of the server you want to connect to to the DNS-system (Mozilla based Epiphany had connection issues with this).
In about:config set “network.proxy.socks_remote_dns” to “true”.
2. Don’t have Firefox forward referer or give away it’s browser ID.
Well, that one’s easy. I just use PrefBar to adjust these (or set “network.http.sendRefererHeader” to “0”).
3. Have a look under useragent too. ie., “general.useragent.locale” and “general.useragent.extra”. Tune as you see fit. For valid useragent IDs, look around the the net, although people have been known to pass off all sorts of made up useragents as jokes –protesting the intrusion into one’ s privacy (ie., Nutscrape).
4. Prevent sites from automatically refreshing by setting “accessibility.blockautorefresh” to “true”. A dialogue asking permission to refresh should appear henceforth.
“Disable Bookmark Icons [as an attempt to speed up the browser, as far as I’m concerned, but I’ve recently read favicons are a way of keeping tabs on unsuspecting users, specifically their surfing habits by issuing websites].
You can disable the display of bookmark icons and “favicons” by using about:config to set both of the preferences
browser.chrome.site_icons and browser.chrome.favicons to false.”
www.mozilla.org (Dead link)
Further Fine Tuning Front-end Behaviour
1. I like case sensitive searches.
accessibility.typeaheadfind.casesensitive [set to 1]
2. Have searches open their own tab with,
browser.search.openintab [set to true]
“After this [all or anyone of these tweaks are/] is done, close the browser (File > Exit). The new setting should take effect the next time it’started.”
www.interpc-solutions.com (Dead link)
* I’m not sure if it’s advisable to add this (as an integer function). I did this to IceWeasel running Debian testing without apparent problems, but I did not notice any drastic improvements either.
** Same as above but as a boolean function.
For more on personalized speed tweaking see,
Quotes compiled and the rest written by Maurice Cepeda
The original material herein is licensed under the Attribution-NonCommercial-ShareAlike3.0 Unported Creative Commons License. All brands mentioned and sourced material are properties of their respective owners. By reading this article, the reader forgoes any accountability of the writer. The reading of this article implies acceptance of the above stipulations. The author requires attribution –by full name andURL– and notice of republications.