Firefox Tuning

Discussion of features in Mozilla Firefox
Locked
User avatar
BenBasson
Moderator
Posts: 13671
Joined: February 13th, 2004, 5:49 am
Location: London, UK
Contact:

Post by BenBasson »

We've PM'd each other, breifly discussing it. When Laszlo has time, he's gonna help me with the math involved, because 1. My understanding is about 1% of his and 2. It's trivial to implement an interface for this, it would be a matter of hours, the hard work is working out different prefs for different configurations and finding a way to make that horribly complex process relatively transparent to people.
User avatar
d_g
Posts: 519
Joined: July 24th, 2003, 3:50 pm

Post by d_g »

OK I've been through the thread and copied and pasted the main settings. They're mostly Laszlo and Cusser's work but if I've mis-credited anything tell me.

Also I'm no expert so if I've ballsed anything up PM me! :)


450Mhz PC/dial-up

Code: Select all

user_pref("content.max.tokenizing.time", 2250000);
user_pref("content.notify.backoffcount", 5);
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("network.http.pipelining", true);
user_pref("network.http.proxy.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);



250MHz/cable

Code: Select all

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("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.http.proxy.pipelining", true);

or

user_pref("content.max.tokenizing.time", 2250000);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 750000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 750000);
user_pref("content.maxtextrun", 8191);
user_pref("nglayout.initialpaint.delay", 750);



Fast computer/dial-up

Code: Select all

user_pref("browser.cache.disk_cache_ssl", true);
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.backoffcount", 5);
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("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.http.proxy.pipelining", true);
user_pref("nglayout.initialpaint.delay", 750);
user_pref("plugin.expose_full_path", true);



Fast computer/512 ADSL

Code: Select all

user_pref("browser.cache.disk_cache_ssl", true);
user_pref("content.max.tokenizing.time", 2250000);
user_pref("content.notify.backoffcount", 5);
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("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.http.proxy.pipelining", true);
user_pref("nglayout.initialpaint.delay", 750);



Everything really fast!

Code: Select all

user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 2250000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 750000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 750000);
user_pref("nglayout.initialpaint.delay", 500);
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("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 8);
user_pref("network.http.proxy.pipelining", true);


Extra stuff

Network/DNS settings (MonkeeSage):

Code: Select all

user_pref("network.dnsCacheExpiration", 360);
user_pref("network.dnsCacheEntries", 100);
user_pref("network.ftp.idleConnectionTimeout", 60);
user_pref("network.http.keep-alive.timeout", 30);
user_pref("network.http.request.max-start-delay", 5);
user_pref("network.http.connect.timeout", 30);

-explanation on page 4

user_pref("dom.disable_window_status_change", true);
-This setting simply disables status bar changes by web pages, which saves some precious CPU time.

user_pref("ui.submenuDelay", 0);
-Makes bookmarks sub-menus open quicker

Cusser's design for an extension is on page 8
Lost User 23429
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Lost User 23429 »

I tried doing the changes in about:config but was unable to search for any content.* entries. Are the content.* entries specifically for Windows? or some version for Firefox?

But anyway, with these setting I haven't got any performance improvements(didn't use the content.* entries). The scragz's test page gave me a load time of about 6.4 (units?? seconds, I suppose).

Could someone solve my mystry of the content.* entries in about:config?

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040506 Firefox/0.8
User avatar
BenBasson
Moderator
Posts: 13671
Joined: February 13th, 2004, 5:49 am
Location: London, UK
Contact:

Post by BenBasson »

Not everything exists by default in about:config, right click > New > Integer (for numbers) or Boolean (true/false).
User avatar
Morpurgo.tk™
Posts: 85
Joined: March 27th, 2004, 8:15 am
Location: The Netherlands
Contact:

Post by Morpurgo.tk™ »

I hope these setings will end up in a new build as a standard improvement :)
Morpurgo.tk, be there or be square
Skype me! callto://E003102025/
Skype? whats that
User avatar
BenBasson
Moderator
Posts: 13671
Joined: February 13th, 2004, 5:49 am
Location: London, UK
Contact:

Post by BenBasson »

I hope these setings will end up in a new build as a standard improvement

I don't think that's really possible, since these are catered to different computers and different connections.
User avatar
alex-the-cat
Posts: 291
Joined: March 12th, 2004, 11:34 am
Location: Chicago, IL, USA

Post by alex-the-cat »

useful info is deserved to be seen.
Please Fold! Rage3D is a nice place to start
sasquatch
Posts: 6022
Joined: November 25th, 2003, 8:56 am

Post by sasquatch »

Cusser wrote:
I hope these setings will end up in a new build as a standard improvement

I don't think that's really possible, since these are catered to different computers and different connections.


Check the "unofficial" builds. I think moox's has some speed improvements on top of being optimized.
User avatar
alex-the-cat
Posts: 291
Joined: March 12th, 2004, 11:34 am
Location: Chicago, IL, USA

Post by alex-the-cat »

has any default value been changed lately?
Please Fold! Rage3D is a nice place to start
User avatar
laszlo
Posts: 5225
Joined: November 4th, 2002, 6:13 pm
Location: .de
Contact:

Post by laszlo »

Not that I knew, at least none of the content sink settings. Do you have a specific one in mind?
"I'll be dead after I die. I was dead before I was born. Life is a break from death." - Hlynur, 101 Reykjavík
User avatar
Chris Wood
Posts: 33
Joined: May 20th, 2004, 3:44 pm
Location: New Zealand
Contact:

"Prefetch" command-line option

Post by Chris Wood »

Cusser wrote:Put the following at the end of the shortcut command line:
/prefetch:1

What does that do?
User avatar
Chris Wood
Posts: 33
Joined: May 20th, 2004, 3:44 pm
Location: New Zealand
Contact:

Post by Chris Wood »

laszlo wrote:
MonkeeSage wrote:network.dnsCacheExpiration: seconds
network.dnsCacheEntries: integer
nsDNSService2.cpp
-
network.ftp.idleConnectionTimeout: seconds
default: 5 minutes (5 * 60)
nsFtpProtocolHandler.cpp
-
network.http.keep-alive.timeout: seconds
network.http.request.max-start-delay: seconds
network.http.connect.timeout: seconds
nsHttpHandler.cpp

Thanks for this. That's one of the purposes of this thread: contributing additional settings, including defaults and pointers to code/documentation, so go on if you know additional ones. ;)

Laszlo, could you add these to the initial post?

And also a link to the above post containing specific optimizations?
Sonance
Posts: 73
Joined: February 4th, 2004, 7:08 am
Contact:

Post by Sonance »

What's the general feeling here about some of these configurations possibly overloading servers? Outside of these forums, these sorts of tweaks appear to be frowned upon. The HTTP RFC recommends no more than 2 simultaneous server connections, otherwise the browser isn't conforming to HTTP standards. On that basis alone, many of the configurations posted here are practically HTTP rape kits. The client gets the gratification but the server suffers. Many web servers will ignore connections above a certain number and may even possibly blacklist the IP address, believing the request for excessive connections to be a DOS attack.

I've had a quick browse through this thread and haven't seen one single mention of the ramifications of these configurations on server loads. Anyone with more knowledge than I care to comment?
Old Bozz
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Old Bozz »

Sonance wrote:What's the general feeling here about some of these configurations possibly overloading servers? Outside of these forums, these sorts of tweaks appear to be frowned upon. The HTTP RFC recommends no more than 2 simultaneous server connections, otherwise the browser isn't conforming to HTTP standards. On that basis alone, many of the configurations posted here are practically HTTP rape kits. The client gets the gratification but the server suffers. Many web servers will ignore connections above a certain number and may even possibly blacklist the IP address, believing the request for excessive connections to be a DOS attack.

I've had a quick browse through this thread and haven't seen one single mention of the ramifications of these configurations on server loads. Anyone with more knowledge than I care to comment?

I'm glad you brought this up. I was in another forum the other day when the settings below were recommended. I'm curious about the same thing. Although these settings make FX really fly on DSL, I would change them to respect standards.

Current:

user_pref("network.http.max-connections", 128);
user_pref("network.http.max-connections-per-server", 48);
user_pref("network.http.max-persistent-connections-per-proxy", 24);
user_pref("network.http.max-persistent-connections-per-server", 12);

Previous:

user_pref("network.http.max-connections", 64);
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);

Remainder of prefs:

user_pref("content.interrupt.parsing", true);
user_pref("content.max.tokenizing.time", 3000000);
user_pref("content.maxtextrun", 8191);
user_pref("content.notify.backoffcount", 5);
user_pref("content.notify.interval", 750000);
user_pref("content.notify.ontimer", true);
user_pref("content.switch.threshold", 750000);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequests", 96);
user_pref("network.http.proxy.pipelining", true);
user_pref("nglayout.initialpaint.delay", 750);
User avatar
BenBasson
Moderator
Posts: 13671
Joined: February 13th, 2004, 5:49 am
Location: London, UK
Contact:

Re: "Prefetch" command-line option

Post by BenBasson »

Chris Wood wrote:
Cusser wrote:Put the following at the end of the shortcut command line:
/prefetch:1

What does that do?

On Windows XP (and maybe NT), it allows for the pre-loading of Firefox.exe, which should result in faster startup times.
Locked