Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

eyoungren

macrumors Nehalem
Original poster
Aug 31, 2011
30,355
30,029
THE FOLLOWING SHOULD ONLY BE REGARDED AS HISTORICAL INFORMATION AND NOT TREATED AS AUTHORITATIVE.

See here for the currently maintained thread on tweaking T4Fx.

<------------------BELOW THIS LINE/OLD INFO ONLY--------------------->​

Per request, here are the tweaks I have applied to my copy of TenFourFox via about:config

This is a work in progress. As I find (refind?) pertinent information I will fill in the gaps and exand any explanations or definitions. Feel free to comment if you have anything to add or comment on.

*Please note that this is not exhaustive. It's only what I have found by extensive Googling of the phrases "firefox high cpu", "firefox high memory usage", "firefox slow", "firefox memory", "firefox cache" or "firefox optimization". Your mileage may vary and any or all of these may not work for you. I'm not responsible for any damage or problems you may have by applying these tweaks. All I can say is they work for me.

**Further note. This post/thread assumes that you know how to create a key and value based on what you see below. Some of the keys and values are not present on a default install of TFF/FF so you will need to create them. If you do not know what you are doing with the about:config file, either learn about it first or don't make any of these changes.

***Finally note that some changes I have made are specific to my setup. I don't use caching at all because I'm using TOR and Private Browsing. I don't want tracks to be made.

I might suggest making a copy of your profile folder before making any modifications. You can always copy it back if you perceive things to be screwed up. TFF, like Firefox makes no backups of settings so once applied you have to recall what you did to set it back. It's easier just to copy back your profile folder if you've made a lot of changes.

Key, Value

Extensions.checkCompatibility, false
Allows you to turn off any compatibility checking for when you install extensions. Useful when you want to install an extension you know works but the program refuses to install.

Key, Value
browser.cache.check_doc_frequency, 1
This checks how often TFF looks to see if the cache for a page is outdated. 0 is never, 1 is automatically.

Key, Value
browser.cache.disk.capacity, 16384
This is my disk cache size. 16384 = 1GB

Key, Value
browser.cache.disk.enable, false
I have this set to not cache to disk. True will enable disk caching.

Key, Value
browser.cache.disk.max_entry_size, 4096
For me this is set at 4MB, meaning the disk cache can only write cache files of 4MB any time it writes. I have disk caching disabled so this has no meaning right now.

Key, Value
browser.cache.disk.parent_directory, /Users/eyoungren/Library/Caches/TF4Fx_Cache
I chose to tell TFF where I want it to have the cache when I use disk caching.

Key, Value
browser.cache.disk_cache_ssl, false
Disk caching of HTTPS pages is disabled.

Key, Value
browser.cache.memory.capacity, 18432
The value of the memory cache (how much physical ram you give TFF). This is in kilobytes I think, but I'm not sure.

Key, Value
browser.cache.memory.enable, false
I have the memory cache disabled.

Key, Value
browser.cache.memory.max_entry_size, 4096
This is set the same as with the max entry size for disk caching. 4MB.

Key, Value
browser.cache.offline.capacity, 747520
Offline capacity of the browser cache. In kilobytes I think.

Key, Value
browser.cache.offline.enable, false
I have the offline cache disabled as well.

-- In other words, I have completely disabled all caching.

Key, Value
browser.history_expire_days_min, 1
My browser history expires every day. I don't really use history since if I want to go back to it I will bookmark it. Keeping all that history just slows things down.

Key, Value
browser.sessionhistory.max_entries, 2
This setting determines how many pages back the browser remembers. When you click the back button the browser references these pages. I have it set to two. Storing more requires more memory, slowing the browser down.

Key, Value
browser.sessionhistory.max_total_viewers, 0
Your session history. I have it set so TFF never remembers session history, which takes ram. I have TabMixPlus which does this for me.

Key, Value
browser.sessionstore.max_concurrent_tabs, 0
The session history TFF remembers for each open tab. Again, I set it to off so TFF never remembers.

Key, Value

browser.tabs.animate", false
Animation = increased CPU load. I have this set to off.

Key, Value

browser.turbo.enabled, true
Old setting, supposedly removed with FF 1.1. Conflicting reports on whether it works or not.

Key, Value


config.trim_on_minimize, true
This is actually a Windows only setting. It returns ram when a window is minimized. I just included it on the off chance it does anything on my system.

Key, Value



content.interrupt.parsing, true
Determines if page loading is interrupted to responde to user input.

Key, Value



content.max.tokenizing.time, 2250000
Maximum amount of time TFF will be unresponsive when rendering pages. content.notify.ontimer and content.interrupt.parsing must be set to true for this preference to take effect. Lowering the interval will make the application more responsive at the expense of page load time. A multiple of the value of content.notify.interval is recommended.

Key, Value



content.notify.backoffcount, 5
Rather than wait until a page has completely downloaded to display it to the user, Mozilla applications will periodically render what has been received to that point. Because reflowing the page every time additional data is received greatly slows down total page load time, a timer was added so that the page would not reflow too often. This preference controls the maximum number of times the content will do timer-based reflows. After this number has been reached, the page will only reflow once it is finished downloading. Note, -1 means unlimited and 0 means none. You can set it to any number. I don't suggest 0 as that means the page will not reflow at all and will only show when completely loaded.

Key, Value



content.notify.interval, 750000
Rather than wait until a page has completely downloaded to display it to the user, Mozilla applications will periodically render what has been received to that point. Because reflowing the page every time additional data is received greatly slows down total page load time, a timer was added so that the page would not reflow too often. This preference specfies the minimum amount of time to wait between reflows.content.notify.ontimer must be set to true for this preference to take effect
This preference affects the default value of content.max.tokenizing.time.
Lowering the interval will lower the perceived page loading time but increase the total loading time, especially on slower connections. Values below 100,000 have a significant impact on performance and are not recommended.


Key, Value



content.notify.ontimer, true
Rather than wait until a page has completely downloaded to display it to the user, Mozilla applications will periodically render what has been received to that point. Because reflowing the page every time additional data is received greatly slows down total page load time, a timer was added so that the page would not reflow too often. This preference specfies whether that timer is active.

Key, Value



content.switch.threshold, 750000
The user can interact with a loading page when content.interrupt.parsing is set to true. When a page is loading, the application has two modes: a high frequency interrupt mode and a low frequency interrupt mode. The high frequency interrupt mode interrupts the parser more frequently to allow for greater UI responsiveness during page load. The low frequency interrupt mode interrupts the parser less frequently to allow for quicker page load. The application enters high frequency interrupt mode when the user moves the mouse or types on the keyboard and switches back to low frequency mode when the user has had no activity for a certain amount of time. This preference controls that amount of time.
content.notify.ontimer and content.interrupt.parsing must be set to true for this preference to take effect.
Raising the value will make the application more responsive at the expense of page load time.

-- The following settings are specific to Flash. Apparently these were settings for FF version 3 beta and below. They were removed with version 3. They will make Flash run smoother and take less CPU load. BUT! The risk of using them is that when or if FF/TFF encounters a problem the app will crash. Creating these keys will make FF/TFF more prone to crashing. Note that I have all of them set to false. That's because I have disabled all plugins for security purposes. But if you aren't worried/don't need security then just enter the keys and the value of TRUE.

Key, Value



dom.ipc.plugins.enabled.i386.flash player.plugin, false
dom.ipc.plugins.enabled.libflashplayer.so, false
dom.ipc.plugins.enabled.libnptest.so, false
dom.ipc.plugins.enabled.npctrl.dll, false
dom.ipc.plugins.enabled.npqtplugin.dll, false
dom.ipc.plugins.enabled.npswf32.dll, false
dom.ipc.plugins.enabled.nptest.dll, false
dom.ipc.plugins.enabled.x86_64, false

Key, Value



dom.max_script_run_time, 0
"Javascript that executes for whole seconds is probably doing something wrong...” says Brendan Eich, creator of JavaScript. When a script is executing, Mozilla's UI will be unresponsive until the script’s thread ends. Correspondingly, Mozilla will alert you when a script is taking a long time to run and let you stop the script. This preference lets you define what “a long time” is.
The value is a positive integer, determining the number of seconds of execution before warning. 0 and negative values are considered "forever."

Key, Value



dom.storage.enabled, false
I don't want my plugins using any hard drive space.

Key, Value



javascript.options.jit.chrome, true
javascript.options.jit.content, true
These are TFF specific keys and allow you to turn on the JIT processor that TFF uses for Javascript

Key, Value



javascript.options.mem.gc_frequency, 5
This is the time in seconds that Javascript does garbage collection. Garbage collection of course releases ram back to the system.

Key, Value



javascript.options.mem.max, 50000
Unsure, but I believe this is the amount of memory in kilibytes alloted to Javascript.

Key, Value
javascript.options.typeinference, false
Whether type inference (a new feature of later versions of FF) is on or not. Enabling it will give you a speed hit and make the browser unstable.

--The following key/values are where the real speed tweaks come in to play.

Key, Value
network.dns.disableIPv6, true
If you aren't using IPv6, turn it off to save ram.

network.dns.disablePrefetch, true
Prefetching pages draws ram

network.dnsCacheEntries, 512
I am only caching 512 DNS entries. These are lookups for the pages you are browsing/have browsed. Having them cached speeds up page loading because the browser is not seeking domain name resolution every time it tries to find a page. Too many though takes up more ram.

network.dnsCacheExpiration, 3600
Amount of time that your cached DNS entries stay cached. In miliseconds.

network.http.keep-alive.timeout, 20
The amount of time (in seconds) before your page keep alive times out.

network.http.max-connections, 1000
The maximum amount of connections allowed. Period.

network.http.max-connections-per-server, 100
The maximum number of connections to any given server. Keep in mind, THIS IS PER TAB! So, if you have a max of 100 connections and have ten tabs open you have hit your max connections!

network.http.max-persistent-connections-per-proxy, 100
The number of connections kept alive when using a proxy.

network.http.max-persistent-connections-per-server, 25
The number of connections kept alive per server (per tab!)

network.http.pipelining, true
In HTTP 1.1, multiple requests can be sent before any responses are received. This is known as pipelining. Pipelining reduces network load and can reduce page loading times over high-latency connections, but not all servers support it. Some servers may even behave incorrectly if they receive pipelined requests. If a proxy server is not configured, this preference controls whether to attempt to use pipelining.

network.http.pipelining.firstrequest, true

Enable pipelining on the first server request.


network.http.pipelining.maxrequests, 8
Maximum number of pipelining server requests. More than 8 are generally ignored and decrease performance.


network.http.pipelining.ssl, true
Pipelining enabled on HTTPS.


network.http.proxy.pipelining, true
Pipelining enabled when using a proxy.


network.http.use-cache, false
When a page is loaded, it can be cached so it doesn't need to be downloaded to be redisplayed. I have caching completely disabled so this setting reflects that.


network.prefetch-next, false
If a page has links this setting determines if those links are prefetched. Remember, prefetching takes ram.

network.websocket.enabled, false
I have websockets disabled. This is a security issue with TOR. If this is enabled and you use a websocket FF/TFF will use local DNS inquiries instead of using TOR if you make more than one websocket connection and therefore reveal your real IP address. This was a recent bug discovered in the TOR browser. Since I am using Torbutton and Vidalia, I have changed this setting in TFF.


network.websocket.max-connections, 1)
The max websocket connections. I have it set at 1, but because of the previous setting it doesn't really matter. I made it one just so that if for any reason there IS a websocket connection I am only making one connection.


nglayout.initialpaint.delay, 0

The amount in seconds before TFF begans to display the page it is loading. The default is a much higher amount to allow for a total page load before displaying the page. That results in an appearance of a longer load time. I have it set to 0 because I want TFF to start displaying content the moment it loads it.

Key, Value
places.history.enabled, false
This is for live bookmarks. Live bookmarks being active sucks ram and CPU. I have it disabled.

Extensions

Some extensions I use that you may wish to look at. BetterCache, SafeCache, NoScript, RequestPolicy, AdBlockPlus and Ghostery. Beyond security issues some of the ones I name benefit you because content is not loaded until you say it is. That can speed up page loading.

That's about it.
 
Last edited:
The only one that matters is tenfourfox.plugins.enabled ; true
Well, I had another user ask what tweaks I had made when I mentioned it in another thread. Rather than post all this in that thread (which would have been off-topic to the original question) I just placed it here.

I have the plugins disabled. Just security is all. I've got several other browsers where it's enabled that I'm not using TOR with so I use those when I need Java or Flash or whatever. But the rest of what I have done has improved things for me in TFF.
 
Perhaps not as much. I'd rather play it safe.

As explained here, the payload of the recent issue affecting Intel Macs only failed on PowerPC Macs because it was written for Intel. But the actual attack succeeded (even though the payload failed) because it was delivered via Java, which PowerPC Macs still use.

Further, I'd rather not have my real IP address out there if there is any chance enabled plugins can expose it. Maybe I'm overcautious, but I don't NEED the plugins, so I'm not missing them at all.
 
Last edited:
As explained here, the payload of the recent issue affecting Intel Macs
Sorry, fear mongering does not work with me. The number of infected computers was extremely small.

14,000,000 intel macs have been sold and only 600k were running it. Thats a 1:23 risk, for a low-threat non-damaging trojan you get only by viewing pornography websites, thats no risk at all to normal people.

Further, I'd rather not have my real IP address out there if there is any chance enabled plugins can expose it.
Then you'd better stop using the internet at all. Every site you visit has access to your IP address, even this forum logs your IP with every post you make. On top of that, your IP is useless information. Mine is 107.2.244.126, you know why? I don't care if anyone knows.

And to show I'm not full of chit.....
 

Attachments

  • Picture 1.jpg
    Picture 1.jpg
    71.8 KB · Views: 273
Sorry, fear mongering does not work with me. The number of infected computers was extremely small.
That's not what I'm doing. I was asked to post the tweaks I made to TFF and I did that. My later comment on disabling plugins for security purposes was based on my personal opinion and the link I provided was to a post written by Cameron Kaiser, the creator of TFF.

I am simply providing information and stating what I am doing with it.

Then you'd better stop using the internet at all. Every site you visit has access to your IP address, even this forum logs your IP with every post you make. On top of that, your IP is useless information. Mine is 107.2.244.126, you know why? I don't care if anyone knows.

And to show I'm not full of chit.....
I'm the opposite. I do care, and yes, I know I am being logged everywhere I go. By my ISP, this site and every site I visit on the internet. That is why I made the personal decision to use TOR. So that the IP address that is being logged is not my personal IP. It changes every ten minutes.

Here is my IP address. Well, ten minutes ago anyway.
 

Attachments

  • cap.jpg
    cap.jpg
    429.4 KB · Views: 291

Extensions

Some extensions I use that you may wish to look at. BetterCache, SafeCache, NoScript, RequestPolicy, AdBlockPlus and Ghostery. Beyond security issues some of the ones I name benefit you because content is not loaded until you say it is. That can speed up page loading.

That's about it.

I wouldn't run Ghostery alongside NoScript. I'm not implying you specifically. Ghostery more or less does the same as NoScript. Or I may be getting confused with NoScript and the Javascript Safari extension. It's a shame Ghostery is such a resource hog on Safari. Some Google image searches can beach ball it, a lot. Interfacelift.com also beach-balls it due to all the social media buttons, even though they're allowed. Yes I know yours is related to TenFourFox, just a shame some of the extensions are becoming terrible on the old Safari.
 
eyoungren, I'm gutted how poor Safari 5.0.6 does in the html5 benchmark compared to TenFourFox 12.

http://peacekeeper.futuremark.com/

Safari ended up second last and TenFourFox obliterated everything on the table.
Yeah, TFF is fast. I just like to tweak as much out of it as I can. I have to assume that a large part of any slowness I may have in running TFF on my main laptop has to do with the failed external cache this Mac has. So any additional speed I can get out of TFF I take. I also did not have 2GB on this machine until a few months ago.

Safari has always sucked for me. I've never had the experience everyone else gets with it. I do use it, but usually it's when I visit a site I know prefers Safari. But TFF has had it's issues too. I went back to TFF 5 for a time when TFF 8 & 9 were out because whatever Cameron Kaiser and his contributors did it just slowed it down. TFF 10 fixed things it seems (for me anyway) and it's been fine since then. Right now, I am writing this using TFF12. Waiting for 13 to come out.
 
Is there a way to turn off auto reloading, when viewing a web site?
accessibility.blockautorefresh, true

This is the equivalent of going to Preferences -> Advanced and in the General tab, checking the box “Warn me when web sites try to redirect or reload the page."
 
My apologies for necroing this thread, but I am resurrecting it in case anyone is doing a Google search…

This thread was my first attempt at providing my tweak optimizations for T4Fx. It's also four years old so a lot of things have changed. Please regard it only as historical info and not as authoritative.

Also, for the record, I haven't used Tor in quite some time. It became too much of a hassle, although it's certainly still doable on PowerPC Macs.

Go here for a more updated version of my tweaks.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.