Monday, April 13, 2009

Techpedia Daily 5: Speed Up Firefox

Welcome to Techpedia Daily 5, the fifth in the daily series of tips and tricks for you to get the most out of your computer.

Mozilla Firefox is an award winning, fast full-featured browser featuring built in antiphishing (as of Version 2), antimalware (as of Version 3), pop up blocker, tabs, customizations (over 5000 add-ons and theme available) and much more. It is now the second most popular browser in the world, the first being Internet Explorer (which is bundled with Windows, the most popular operating system).

For simple ways to speed up, visit Daily issue 4. However, this will speed it up a lot more, although it will take significantly longer as this post will also be much longer than usual.

Here's a bunch of things you can do to speed up Mozilla Firefox without any additional downloads or installs. Unlike other browsers, Firefox actually lets you modify its configuration through the about:config page.

Remember, this tutorial is for Mozilla Firefox only. Tested on Firefox 3. Therefore, to start, obviously, open up Firefox (Microsoft Windows, Mac OS X, or Linux).

Just in case you mess up, make a backup from your configuration. Go to your Firefox profile which is located:

Windows Vista and 7: C:\Users\AppData\Roaming\Mozilla\Firefox
Windows 2000, XP, Server 2003: C:\Documents and Settings\
Mac OS X: ~/Library/Application Support/Firefox
Linux and Unix Systems: ~/.mozilla/firefox

Click on the Profiles folder and the next folder which should be like a random string of characters followed by .default (if its your default profile). Look for a file called prefs.js. Copy and paste that to another folder (COPY not CUT) or somewhere safe. Don't lose it. If you mess up simply paste that back into your profile and replace the existing one.

First type in about:config into the address bar. A warning will appear, so click, "I'll be careful, I promise!" This is like Firefox's own version of the Microsoft Windows Registry. So, just like the registry, it could get messed up, so be careful. That's why we created a backup.
Helpful info about this page: There are 3 types of values: Boolean, Integer, or String. Double clicking any value either modifies it (Integer/String) or toggles it (Boolean). To remove a value, reset it. Only values that are NOT built into Firefox by default AND are not being used by an installed extension will be deleted. Bolded lines are user set while others are default value. Anyways, time to speed up Firefox!

For all the filter bar terms that I mention here, only change the value for that EXACT name.

HTTP Pipelining
Most web pages are transferred using the HTTP Application Protocol. HTTP Pipelining is when multiple requests are sent before any responses are received. This speeds up page loading times, although note that some servers might not support it.

In the filter bar, type in
network.http.pipelining When the results come (click Enter or wait a few seconds for instant search) Make sure it says true and if it doesn't, double click to toggle it.
Then type in network.http.pipelining.maxrequests Double click it and set it to 8 (Default is 4).
HTTP Proxy
Type in network.http.proxy.pipelining Double click to set it to true (if it isn't already true).
HTTP Pipelining should speed the time it takes to load pages.

From here on, lets keep it short:

Create a new integer value: content.notify.backoffcount and set the value to 5 Create a new boolean value: plugin.expose_full_path and set it to true Create a new integer value: ui.submenuDelay and set the value to 0

Now, full paths are displayed in about:plugins and the Sub Menus no longer have delays.

From here on, it depends on your computer. In the following, it seems pointless to explain what type of value. There are no strings here so don't worry. If its true/false, then its a boolean. If its a number, then its an integer. If the value does not exist yet, create it. If it does, edit it.

If you have a fast computer with a fast connection (DSL/Cable/T1)

  1. content.interrupt.parsing: true
  2. content.max.tokenizing.time: 2250000
  3. content.notify.interval: 750000
  4. content.notify.ontimer: true
  5. content.switch.threshold: 750000
  6. nglayout.initialpaint.delay: 0
  7. network.http.max-connections: 48
  8. network.http.max-connections-per-server: 16
  9. network.http.max-persistent-connections-per-proxy: 16
  10. network.http.max-persistent-connections-per-server: 8
  11. browser.cache.memory.capacity: 65536
If you have a fast computer, but slower connections (slower DSL/Cable):
  1. content.max.tokenizing.time: 2250000
  2. content.notify.interval: 750000
  3. content.notify.ontimer: true
  4. content.switch.threshold: 750000
  5. network.http.max-connections: 48
  6. network.http.max-connections-per-server: 16
  7. network.http.max-persistent-connections-per-proxy: 16
  8. network.http.max-persistent-connections-per-server: 8
  9. nglayout.initialpaint.delay: 0
  10. browser.cache.memory.capacity: 65536
If you have a fast computer, but slow connection (Dial Up)
  1. browser.xul.error_pages.enabled: true
  2. content.interrupt.parsing: true
  3. content.max.tokenizing.time: 3000000
  4. content.maxtextrun: 8191
  5. content.notify.interval: 750000
  6. content.notify.ontimer: true
  7. content.switch.threshold: 750000
  8. network.http.max-connections: 32
  9. network.http.max-connections-per-server: 8
  10. network.http.max-persistent-connections-per-proxy: 8
  11. network.http.max-persistent-connections-per-server: 4
  12. nglayout.initialpaint.delay: 0
  13. browser.cache.memory.capacity: 65536
If you have a slow computer, but a fast connection (T1/DSL/Cable)
  1. content.max.tokenizing.time: 3000000
  2. content.notify.backoffcount: 5
  3. content.notify.interval: 1000000
  4. content.notify.ontimer: true
  5. content.switch.threshold: 1000000
  6. content.maxtextrun: 4095
  7. nglayout.initialpaint.delay: 1000
  8. network.http.max-connections: 48
  9. network.http.max-connections-per-server: 16
  10. network.http.max-persistent-connections-per-proxy: 16
  11. network.http.max-persistent-connections-per-server: 8
  12. dom.disable_window_status_change: true
And finally, if you have a slow computer and a slow connection (Dial Up)
  1. content.max.tokenizing.time: 2250000
  2. content.notify.interval: 75000
  3. content.notify.ontimer: true
  4. content.switch.threshold: 750000
  5. nglayout.initialpaint.delay: 750
  6. network.http.max-connections: 32
  7. network.http.max-connections-per-server: 8
  8. network.http.max-persistent-connections-per-proxy: 8
  9. network.http.max-persistent-connections-per-server: 4
  10. dom.disable_window_status_change: true
This should optimize your Firefox to be faster.

Ever realized how when you minimize Firefox and keep it idle, it still uses up so much RAM? Now, lets make it so its like most other apps; minimizing would swap the memory usage from RAM to disk.

SIDE EFFECT: If you are someone who likes to constantly minimize Firefox, like me, don't use the following setting. It may cause lagging. This value slows down Firefox "waking up"

Add the following boolean value: config.trim_on_minimize and set it to true

The default value is false and that is recommended for typical users. The memory only gets swapped to disk if needed by other applications. Only set this to true if you have problems with Firefox consuming too much RAM. The best performance of Firefox (but not neccessarily your computer) is acheived with this set to false.

Again, if you ever mess up, simply copy the prefs.js file back in and when it asks you if you want to replace the existing one, select Yes, assuming you made a backup first. If you didn't, then run Firefox in safe mode and on the Window that comes up first

Thanks for reading Techipedia! As always, you may contact me by chatting with me in the Digsby widget in the sidebar, leaving a comments in the comments section, or by sending an email to techpedia.mail@gmail.com.

If you would like to write for Techipedia, send an email to techpedia.mail@gmail.com.