Optimize Firefox as equipment characteristics and speed ADSL

One of the limitations of pretty much all computer applications is the need to target for a general audience because of the wide array of computer components and varied network infrastructure. This is where tweaking comes in. Firefox by default is aimed at a general audience too and hopefully we can tune it more to the needs of the individual. The majority of the information comes from this excellent thread over at the MozillaZine Forum. The first post in particular goes through in great detail what each of the settings do. The thread however gets fairly long and convoluted and we attempt to summarize the contents of this thread along with a couple other sources into something that is easier to digest. As with the settings on the previous page, the contents are copied into the user.js file. We do not go into major detail about the setting as the thread goes into detailed explanations of what the settings mean in the first post. Instead, the configurations are culled from the thread of what people have reported to have worked for them along with some modifications on our end.

Quick and Dirty Settings

user_pref(“network.http.pipelining”, true);
user_pref(“network.http.pipelining.firstrequest”, true);
user_pref(“network.http.pipelining.maxrequests”, 8);
user_pref(“nglayout.initialpaint.delay”, 0);

These were some settings I ran across sometime ago. Pipelining does multiple data requests at once and should speed things up. I believe IE did this before and this was partially attributable to the speed advantage that IE had over older versions of Mozilla/Netscape. Initial Paint Delay actually slows down the rendering of the ENTIRE page but since users tend to start reading before the entire page is rendered, setting this to a low value gives the impression that the page loads faster.

The following configurations are based off of recommendations off of the Mozillazine thread with some editing on points that I do not agree with

Common to all configurations

These are the settings that seem to be common to all configuration files regardless of connection speed or computer speed with a couple of additions – plugin paths can be found with about:plugins and the bookmark menu delay is turned off.

user_pref(“network.http.pipelining”, true);
user_pref(“network.http.proxy.pipelining”, true);
user_pref(“network.http.pipelining.maxrequests”, 8);
user_pref(“content.notify.backoffcount”, 5);
user_pref(“plugin.expose_full_path”, true);
user_pref(“ui.submenuDelay”, 0);

Fast Computer Fast Connection

user_pref(“content.interrupt.parsing”, true);
user_pref(“content.max.tokenizing.time”, 2250000);
user_pref(“content.notify.interval”, 750000);
user_pref(“content.notify.ontimer”, true);
user_pref(“content.switch.threshold”, 750000);
user_pref(“nglayout.initialpaint.delay”, 0);
user_pref(“network.http.max-connections”, 48);
user_pref(“network.http.max-connections-per-server”, 16);
user_pref(“network.http.max-persistent-connections-per-proxy”, 16);
user_pref(“network.http.max-persistent-connections-per-server”, 8);
user_pref(“browser.cache.memory.capacity”, 65536);

A couple settings of note – Firefox is allocated 4096 KB of memory by default and in this configuration we give it roughly 65MB as denoted by the last line. This can be changed according to what is used.

Fast Computer, Slower Connection

This configuration is more suited to people without ultra fast connections. We are not talking about dial up connections but slower DSL / Cable connections.

user_pref(“content.max.tokenizing.time”, 2250000);
user_pref(“content.notify.interval”, 750000);
user_pref(“content.notify.ontimer”, true);
user_pref(“content.switch.threshold”, 750000);
user_pref(“network.http.max-connections”, 48);
user_pref(“network.http.max-connections-per-server”, 16);
user_pref(“network.http.max-persistent-connections-per-proxy”, 16);
user_pref(“network.http.max-persistent-connections-per-server”, 8);
user_pref(“nglayout.initialpaint.delay”, 0);
user_pref(“browser.cache.memory.capacity”, 65536);

Fast Computer, Slow Connection

user_pref(“browser.xul.error_pages.enabled”, true);
user_pref(“content.interrupt.parsing”, true);
user_pref(“content.max.tokenizing.time”, 3000000);
user_pref(“content.maxtextrun”, 8191);
user_pref(“content.notify.interval”, 750000);
user_pref(“content.notify.ontimer”, true);
user_pref(“content.switch.threshold”, 750000);
user_pref(“network.http.max-connections”, 32);
user_pref(“network.http.max-connections-per-server”, 8);
user_pref(“network.http.max-persistent-connections-per-proxy”, 8);
user_pref(“network.http.max-persistent-connections-per-server”, 4);
user_pref(“nglayout.initialpaint.delay”, 0);
user_pref(“browser.cache.memory.capacity”, 65536);

Slow Computer, Fast Connection

user_pref(“content.max.tokenizing.time”, 3000000);
user_pref(“content.notify.backoffcount”, 5);
user_pref(“content.notify.interval”, 1000000);
user_pref(“content.notify.ontimer”, true);
user_pref(“content.switch.threshold”, 1000000);
user_pref(“content.maxtextrun”, 4095);
user_pref(“nglayout.initialpaint.delay”, 1000);
user_pref(“network.http.max-connections”, 48);
user_pref(“network.http.max-connections-per-server”, 16);
user_pref(“network.http.max-persistent-connections-per-proxy”, 16);
user_pref(“network.http.max-persistent-connections-per-server”, 8);
user_pref(“dom.disable_window_status_change”, true);

One of the changes made for this particular configuration is the final line where the status bar is disabled for changing web pages to save processor time.

Slow Computer, Slow Connection

We have entered the doldrums of the dial-up user

user_pref(“content.max.tokenizing.time”, 2250000);
user_pref(“content.notify.interval”, 750000);
user_pref(“content.notify.ontimer”, true);
user_pref(“content.switch.threshold”, 750000);
user_pref(“nglayout.initialpaint.delay”, 750);
user_pref(“network.http.max-connections”, 32);
user_pref(“network.http.max-connections-per-server”, 8);
user_pref(“network.http.max-persistent-connections-per-proxy”, 8);
user_pref(“network.http.max-persistent-connections-per-server”, 4);
user_pref(“dom.disable_window_status_change”, true);

Some of the options we chose not to include as opposed to suggestions on the Mozillazine threads included the suggestion of catching SSL pages. Regardless of computer speed, one of the common trends is that pipelining is a good thing. Those with faster computers and gobs of memory may want to up the amount of memory available to Firefox while those with slower computers can still increase the default 4MB to something higher. This was not done in our configuration files however. Powerusers are also welcome to disable the status bar to eek out that extra CPU cycle or two.

Leave a Reply