Some preferences that can be set to improve Firefox performance include the ones in the following list. Some deal with rendering (those whose name begins with content), and some are used in other locations. In most items where a time is listed, the time is in microseconds. A microsecond is one millionth of a second. Many times computers deal in milliseconds (thousandths of a second). In cases where milliseconds are needed, Firefox divides microseconds by 1,000 to convert to milliseconds.
The following preferences may be added to user.js or be set using about:config (see Chapter 9 for more information about about:config):
browser.cache.disk_cache_ssl This preference is set to -1 if memory is determined dynamically, to 0 if there is no cache for SSL, and a positive value to specify memory in kilobytes. This preference is frequently set to indicate that there is to be no caching, although you can experiment with other values.
browser.cache.memory.capacity This preference is set to -1 to dynamically determine the capacity, to 0 if none, or a positive value to indicate the value in kilobytes.
browser.xul.error_pages.enabled This preference tells Firefox to use XUL error pages instead of pop-up windows when a page load error is detected. Pop-up windows require that the user explicitly close them, while XUL error pages do not. Also, when this preference is set, the Show Failed URL extension makes a valuable addition to Firefox.
content.interrupt.parsing If set to true, the parser might be interrupted. This can improve performance if turned on. The parser is the part of the program that interprets the HTML code.
content.max.tokenizing.time This preference specifies how long you stay away from the event loop when processing a token. A lower value makes the application more responsive but might increase page load time. Usually this value should be three times the content.notify.interval preference, which is what Firefox does if it is not specified.
content.notify.interval Dynamically effects how long Firefox initially waits before displaying a page when Firefox is being used on a slow connection (dialup, for example). Values below 100,000 might adversely affect page loading performance. Values above this will improve page load performance. The default value is 750,000 (3/4 second); a typical value might be 200,000 (1/5 second).
content.notify.ontimer A true or false setting to determine whether Firefox does notifications based on time. This preference is usually set to true.
content.notify.backoffcount This preference specifies the number of times the counter might be decremented before it reaches 0. If this preference is set to -1, the counter is never decremented.
content.switch.threshold Setting this preference to 750,000 (3/4 of a second) sets the switching interval. See content.notify.interval for additional information.
network.http.max Specifies a limit to the number of connections that can be established for all hosts. This effects all connections to hosts or the proxy server, if there is one. By default, this preference is set to 24.
network.http.max-connections-per-server Limits the absolute number of http connections to a single server and specifies the number of connections that can be established for a given host. There is some controversy on this preference as higher numbers of connections can cause adverse server operation, as the server might think it is busier than it really is. This affects either the host or the proxy server, if there is one. By default, this preference is set to eight.
network.http.max-persistent-connections-per-proxy When using a proxy server and when network.http.keep-alive = true, this preference limits the number of persistent connections to the proxy server. The default value for this preference is four.
network.http.max-persistent-connections-per-server When no proxy server is used and when network.http.keep-alive = true, this preference limits the number of persistent connections. The default value for this preference is two.
network.http.keep-alive When false, neither network.http.max-persistent-connections-per-proxy nor network.http.max-persistent-connections-per-serve are used.
nglayout.initialpaint.delay This preference sets the delay for the initial paint. The default value is 250 milliseconds (1/4 second; unlike many other time related specifications, this is milliseconds, not microseconds!).
These are some of the commonly known preferences that affect performance. There might be many others. To find them, however, requires a careful search of the Firefox source code, an in-depth understanding on how Firefox works, and programming experience.
An example of using one of these preferences would be to add the line:
to your user.js file. This doubles the delay before the document is rendered.