You are on page 1of 5

Fine Tuning Firefox http://www.technical-assistance.co.uk/kb/ffconfig.

php
1 of 5 27/11/2007 16:16
Free Computer Technical Support :: Fine Tuning Firefox
Fine Tuning Firefox

Introduction
Mozilla Firefox is considered one of the better browsers currently
available. That said people always want to tweak the good stuff to make
it better. In this article we look at how we can improve the performance
of Firefox to get the most out of our internet connection, and make
browsing a more pleasurable experience.
There are many such articles on the web that list settings to improve
Firefox's performance, without any real explanation of what is being
changed. Many of these articles copy verbatim settings from each other,
and some of the settings are of questionable value. If such settings were
generically good for improving the performance, then they would be set
by default in Firefox. This article explains how someof the settings work
and their implications. We give advice on settings, however there is no
hard and fast rules, and you should experiment as every PC and internet
connection setup is different.
Configuration
In order to tweak the software, we need to access its configuration
interface. In Firefox, all we need to do is type about:config in the
address bar, and press Enter. This should give you something like the
following in Firefox:
From this window we can change any settings. All we need to do is find
Home
Knowledge
Base
Support Forum
Store
Search
Site Map
Contact Us
Links
SanDisk SDCZ4-256-A10
25...
SanDisk
New $6.74
D-Link DUB-H7 High
Speed...
D-Link Systems, In...
New $30.98
Fine Tuning Firefox http://www.technical-assistance.co.uk/kb/ffconfig.php
2 of 5 27/11/2007 16:16
the necessary setting, and double click on it to change it. This will either
toggle its setting, or bring up a window for you to enter a setting of your
choice.
Pipelining
The first thing we need to do is enable pipelining. Pipelining enables
multiple HTTP requests
to be sent, even before
a response is received
from the server. You
should note that this
setting may not work
correctly with some
servers that do not
support pipelining,
therefore you may need
to disable this for some
websites; however
experience shows that
virtually all websites
work without problem.
In order for pipelining
to work, the browser
must be configured to use HTTP 1.1. This is in fact the default setting,
however you should verify this by checking the setting
network.http.version is set to 1.1 if not, then change it. Another
requirement for pipelining to work is the setting
network.http.keep-alive is set to True. This setting means that the
HTTP connection can be kept alive for multiple requests, rather than
only being used for a single request. Again, the default setting is True,
so this should not have to be changed.
Pipelining has two settings, one for if you are using a proxy server, and
one for if you are not. If you are unsure then you should set both of
these to true to be on the safe side. The settings you need to change are
network.http.pipelining and network.http.proxy.pipelining, and
should be set to True.
Once pipelining is enabled, it is necessary to set the maximum number of
requests to pipeline at once. This value can be from 1 to 8, where 1 is
effectively disabling pipelining. The higher the value, the longer the delay
will be before the first request completes, however the last request will
finish sooner. So this means it will take longer to start to load the page,
but the page will finish loading sooner. Also, if a connection fails, the time
out period will be longer for higher values. We would recommend setting
this value to 8, however you may experiment with different values.
Connections
The number of connections Firefox can make to servers will impact the
speed at which it can retrieve information. However if this is too high,
then it will slow the application down as it tries to manage all the
connections. The network.http.max-connections setting controls the
total number of connections that can be maintained at any one time. The
default setting is 24. We recommend for dial up to set this to 32, and for
broadband take 32 and add 2 for every 1mbps of connection speed you
have (so for a 2mbps connection set to 36). You may experiment with
this setting to find an optimum for you specific configuration.
amazon_ad_o = 1;
amazon_ad_rcm = "rcm.amazon.com";
amazon_ad_linkcode = "op1";
document.write("<scr"+"ipt src='http://www.assoc-amazon.com/s/ads-common.js' type='text/javascr"+"ipt'></scr"+"ipt>");
RDP Printing for WinXP
Print across RDP connections from Windows XP - Free
demo!
www.thinprint.com/rdpxp
Reading & Writing
Get Students Reading, Writing & Thinking About
Literature
bookpunch.com
Chiptuning & ECO Tuning
fr PKW, LKW und Motorrder deutschlandweite DKR
Sttzpunkte
www.dkr-tuning.de
Fine Tuning Firefox http://www.technical-assistance.co.uk/kb/ffconfig.php
3 of 5 27/11/2007 16:16
You can also control the maximum number of connections to each server
(although this will always be limited by the above total setting). This is
controlled by network.http.max-connections-per-server and has a
default of 8. This is fine for dial up, but add 1 for every 1mbps of
connection speed you have for broadband. Note that if you are using a
proxy server to retrieve information, this setting will limit the connections
as all connections will be to the proxy server. In these instances, set this
value to the same as network.http.max-connections.
You can also define the number of persistent connections, these
connections can be reused for multiple requests and speed up data
transfer. There are two settings
network.http.max-persistent-connections-per-proxy for if you are
using a proxy server and
network.http.max-persistent-connections-per-server for if you are
not. If in doubt set both of these.
network.http.max-persistent-connections-per-proxy should be set
to the same as network.http.max-connections-per-server and
network.http.max-persistent-connections-per-server should be half
this value, but should not exceed 10 (integers only, so round off if you
are dividing an odd number).
Preventing Firefox from attempting to us IPv6 DNS lookup can also speed
up browsing. The setting network.dns.disableIPv6 should be set to
True to disable to IPv6 lookup. If you are on a network that uses IPv6,
this should be left to False, however few networks currently use IPv6.
Page Rendering
Controlling how Firefox renders, or displays, the page can have an impact
on how quickly it loads.
The setting content.notify.backoffcount controls how many times the
page can be rendered while the page is loading. It renders what is
available of the page at periodic intervals. If this setting is disabled (set
to 0) then the page will not render until it has fully loaded; this will then
consequently slow down the time it takes for the page to start to appear.
If set to -1, then there is no limit on the number of times it reflows the
page; this is the default setting. You can set this to any positive integer,
and it will only reflow the page that many times. Reflowing slows down
the overall page load time, however it speeds up the display of
information. We recommend that this setting is set to 5, this way as the
page loads, the start will be available more quickly, however the end will
take longer to display, but overall the page should display quicker than if
the setting is disabled. You can play with this setting to find an optimum
for your preference. Please note that this setting relies on
content.notifier.ontimer being set to True. Also, this setting does not
exist by default, so you may need to create it by right clicking and
selecting New -> Integer and setting the name to
content.notify.backoffcount and the value to 5.
In order to set define the minimum time between reflows we can use the
setting content.notify.interval. This is an integer value defining the
number of microseconds (1 millionth of a second) between reflows. This
setting does not exist by default, and will need to be created. If this is
not set then the default is 120,000. It should not be set below 100,000
as this will seriously impact performance. Increasing this value will
decrease the total loading time, but increase the perceived load time. As
a rule of thumb, take the connection speed in bps (dial up is ~56,000bps,
a 1mbps is ~1,000,000bps) and divide this by the processor speed of
your computer in GHz. Use the value you get, for example a 2GHz PC
with a 2mbps connection would be 1000000. If your value exceeds
Hacking Firefox
Mel Reyes
New $24.99
Best $0.43
Redesigning Web
Sites
Stefan Mumaw
Best $9.94
Introducing
Microsoft Windows
Server...
Jerry Honeycutt
New $19.79
Best $1.99
Goldfish
Marshall E.
Ostrow...
New $7.99
Best $1.00
SanDisk
SDCZ4-256-A10
256 MB Cruzer ...
SanDisk
New $6.74
Best $6.74
Privacy Information
Fine Tuning Firefox http://www.technical-assistance.co.uk/kb/ffconfig.php
4 of 5 27/11/2007 16:16
Physical RAM Cache (KB)
32 MB 2048
64 MB 4096
128 MB 6144
256 MB 10240
512 MB 14336
1 GB 18432
2 GB 24576
4 GB 30720
8 GB and up 32768
1,000,000 then round down to 1,000,000; if the value is below 150,000
then round up to this value. Remember this is a guideline and you can
experiment. Note that content.notify.ontimer must be set to True for
this to have effect.
You can control how long it will be before the page starts to render from
initially loading the page. This is controlled with the setting
nglayout.initialpaint.delay. This setting is an integer value defining the
number of milliseconds (1 thousandth of a second), the default value is
250. Many articles say to set this value to 0, however at this point in
time there is no data to display, so this is a pointless exercise. The initial
part of the page is made up of headers and does not display any useful
information, so setting this value too low is counter productive. For
broadband connections, we would recommend setting this not below
100, and for dial up leave at 250. The faster your connection the lower
you can take this figure to get the initial part of the page displayed, you
can experiment with this figure to optimise for your system.
You can determine the amount of time Firefox will be unresponsive while
rendering pages using the setting content.max.tokenizing.time. This is
an integer value representing the number of microseconds. This
preference does not exist by default, and defaults to three times the
value for content.notify.interval. We recommend that this ratio is
maintained; so if you do have the value set, set it to three times the
content.notify.interval value, or delete the value. Lowering this setting
will make Firefox more responsive, but at the expense of page load
times. The setting content.interupt.parsing needs to be set to True (or
not exist, as this is its default value) for this to take effect.
Firefox needs to wait for a node before it can render part of a page, if a
text heavy page with a long text node is being loaded, this can result in
preventing the page from rendering. The setting content.maxtextrun
can be used to determine where to split a text node so that the rendering
can happen. This setting does not exist by default, but defaults to 8191.
This is fine for most setups, however if you have a slow computer on a
fast connection it may be beneficial to reduce this figure by as much as
50%. You can experiment with this setting.
Caching
When a page is loaded, it can be cached
so that it does not need to be rerendered
to be redisplayed, for instance if you go
back to a page using the Back button.
You can set the maximum amount of
memory used to cache images and other
interface elements using the
browser.cache.memory.capacity
setting. This is an integer setting that
defines the size of the cache in kilobytes.
This setting is not present by default. A
setting of 0 disables caching, and -1 is
the default setting where Firefox
determines its own maximum based on the physical RAM in the system.
The table on the right displays the defaults.
You should lower this setting if your computers performance is suffering
due to low memory, however this will increase load times of previously
visited pages. You can also increase this setting to improve performance,
however it is not recommended to go beyond 10% of the total physical
memory, as this will impact other applications and processes running on
the PC. In order for this setting to take effect,
bowser.cache.memory.enable must be set to True. If you want to
ColdFusion Slow?
Find out Why From The
Web App. Specialists -
Call: (970) 223-227!
www.WebApper.com
100% Anonymous
Surfing
100% Anonymous
Surfing, No IP Who is
watching You?
www.findnot.com
CallerIP - Port Monitor
Monitor any connection to
and from your machine! IP
and Port monitor
www.callerippro.com
Reading & Writing
Get Students Reading,
Writing & Thinking About
Literature
bookpunch.com
Tomcat Monitoring
Tomcat performance
monitoring Get Alerts,
Reports - Download Now
AppManager.com/Tomcat-Monitor
SanDisk
SDCZ4-256-A10 256 MB
Cruzer Micro with Skins
SanDisk
New $6.74
Best $6.74
Privacy Information
Fine Tuning Firefox http://www.technical-assistance.co.uk/kb/ffconfig.php
5 of 5 27/11/2007 16:16
Like this page?
Bookmark and Share


experiment with this setting, putting about:cache?device=memory in
the address bar will give the current memory cache usage.
User Interaction
If content.interupt.parsing is set to True (default), then the user can
interact with a loading page (click links, etc.). If the page is not being
interacted with, then Firefox checks for interactions less frequently,
however once an interaction has been detected the frequency of checking
increases to make the application more responsive to the user, but slows
page load time. The time taken from the last interaction to returning to
the less responsive mode where the page loads quicker can be changed
with the setting content.switch.threshold. This is an integer value that
represents the number of microseconds before returning to the less
responsive mode. By default this setting does not exist and defaults to
750000. This value is fine for most PCs, however for slower PCs
especially on slower connections you may wish to raise this to 1000000
to make the application more responsive during page loads. This will
have an adverse affect on page load times however. You may wish to
experiment with this setting. Please note content.interrupt.parsing and
content.notify.ontimer must be set to True for this preference to take
effect (they both are by default).
Summary
You should now have an idea of what settings can impact the
performance of Firefox. We encourage you to experiment with these
settings to see what works for your setup best in order to get the most
out of Firefox with you setup.
Related Forum Posts
Firefox opens 2 windows when opening .html files
Downloading files in Firefox
Mozilla firefox tweak
Credits
Thanks to SoftStag for contributing this article.

2005 - 2007 All Rights Reserved
www.technical-assistance.co.uk - Free Computer Technical Support
Terms and Conditions
Ads by Google Modem Broadbands DSL Broadbands Cable Broadbands ADSL UK Broadbands Hotel Connections

You might also like