Forum Moderators: open
Disclaimer: This is not, and is not intended to be, a FireFox vs. Opera thread. The following are simply some basic guidelines for increasing FireFox performance, and is not meant to be a comparison of any kind! ;)
I've heard it said, here and other places, that Opera is the fastest browser available. It is fast - there's no denying that - but there are ways to make FireFox render pages every bit as quickly, with just a few easy "tweaks." I had thought these adjustments were pretty well-known, but it's beginning to seem as though they may not be. So I thought it was worthwhile to bring these "hidden settings" more into the light.
To get started, type "about:config" in your FireFox address bar. The settings you're looking for are:
1.) network.http.pipelining
2.) network.http.pipelining.firstrequest
3.) network.http.pipelining.maxrequests
4.) network.http.proxy.pipelining
5.) nglayout.ititialpaint.delay
Set #1, #2, and #4 to "true". Set #3 to a high number, like 32. Set #5 to 0.
Enabling the pipelining features allows the browser to make multiple requests to the server at the same time. The "maxrequests" is the maximum number of requests it will send at once. I've heard that 8 is the most it will send at once, but setting it higher won't hurt, just in case. The initialpaint.delay is the length of time (in milliseconds) after the server response before the browser begins to paint the page.
Adjusting those settings will help pages render much faster in FireFox. In fact, my own observations have been that, tweaked in this manner, FireFox will render faster than Opera (and yes, I realize that others may experience different results).
The FireFox Tuning thread [forums.mozillazine.org] over at Mozillazine has more information for different connection speeds, etc.
[edited by: encyclo at 2:27 am (utc) on July 13, 2006]
Is there any reason why these wouldn't be the default settings?
I think because there is some very slight sacrifice of rendering stability using these adjustments, mostly on fixed-width table layouts. For instance, one time out of ten visits to a particular page, a table may expand to 100% instead of remaining at 760px.
In my experience, these rendering "problems" are erratic, infrequent, and will rarely - if ever - actually "mess up" a page. In fact, I haven't noticed any related rendering issues at all since upgrading from FireBird 0.7 to FireFox 0.8.
network.http.sendRefererheader
Double-click it and set the value to 0. This disables sending the referer header, and seems to further increase the browser's speed.
My only concern with disabling the referer header is that it might be a little inconsiderate to site owners who want to know where their traffic is coming from. However, the vast majority of the sites I visit are from my Bookmarks or type-in, so I don't feel too badly about disabling the referer header.
Double-click it and set the value to 0. This disables sending the referer header, and seems to further increase the browser's speed.
I'd recommend against disabling the referrer header. It can break random pages you may not expect. Some sites won't allow images to be downloaded without the referrer header. Some won't allow file downloads. Etc.
(1) Pipelining isn't supported in IE, so there are still a few old servers with buggy pipelining implementations floating around. This causes files to not be matched up properly with the correct request. Personally, I've been using pipelining since it was first implemented in Mozilla (1.0 or a little before, if I remember correctly) and I've had very few problems. The more latency there is in your connection the more it will help. If you're using a satellite broadband service, for example, it should be a night-and-day difference on complex pages. On cable or DSL, the difference will be much smaller.
(2) Disabling the initial paint delay slows down page display and causes things to jump around a bit due to reflows. It will, however, appear to be faster in many cases because the period of time between the request and the first display of an incomplete page will frequently be shortened.
I did find one new setting, browser.turbo.enabled, which, when set to true, seems to make a difference. I have no confirmation other than my own perception, however, which could be flawed.
0.9 seems to be faster than 0.8 anyway, once pipelining is enabled.
Or maybe the installer version has those options and the .zip version doesn't. (I never use the installers; that's one reason I love FireFox!)
I found the following options using about:config
network.http.pipelining
default value false, change to true
network.http.pipelining.maxrequests
default value 4, change to 8, not higher apparently, some debate about server load or something, see link below.
network.http.proxy.pipelining
default value false, change to true
on Firefox 0.8 I tried setting the ngpaint delay to less than 250 milliseconds and ended up getting too many rendering errors, text running out of table cells, javascript failures etc, so I put it back. If I understand that right, it's just an illusion anyway, it makes it look like page renders faster, but doesn't really make the page come faster from begin to end load. Opera seems to have this set very low, I noticed on 7x that displays repaint themselves as they load, personally I don't like that affect, it's distracting.
paintdelay doesn't seem to be present on 0.9.
browser.turbo.enabled is apparently a leftover that does nothing, read this mozillazine thread [forums.mozillazine.org].
Thanks for the suggestion.
I just made the changes you suggest, except in my version of firefox there is no entry for network.http.pipelining.firstrequest , nor is there one for nglayout. There are two that begin with word nglayout but the letters after nglayout are not the same as you mentioned.
Going to give the speed a try now. It was lightning fast before compared to IE6. I am on cable so I have a very fast connection.
LARRY