Multiprocess Firefox 44.b, Electrolysis Optimization

It so happened that Firefox uses a single-processor model, and the reality is that such an approach, taking into account the dynamics of the network and a partial connection with XUL, causes, to put it mildly, a lot of inconvenience. One process must process several threads, which greatly affects the performance of the browser as a whole. Responsiveness of Firefox left much to be desired when the same Google Chrome perfectly rendered heavy pages, which did not affect the performance of other tabs.

This state of affairs forced many to switch to chrome, and who did not want to - was looking for solutions in the form of various kinds of optimizations that, by and large, due to the illogical approach to the distribution of flows or the banal desire to post something on a blog, simply exacerbated the situation. Now one process should not just work, but work very fast! In the end, the developers themselves were well aware that one thing - low memory, another - low speed, which is mainly justified by old bundles with XUL. In fact: we open several tabs in Firefox at once, scroll them and at the time of loading we see that everything is slowing down - there was no talk of any smooth surfing.

Mozilla launched the Electrolysis project to adapt the Gekko engine to multiple processes. What makes Mozilla switch to a similar model for building its browser? First of all, it is performance and responsiveness. The main goal is to reduce jank, which manifests itself during standard operations - loading a particularly large page, typing in a web form or scrolling overloaded with page elements.

I suggest using the new features of the multiprocessor model (unfortunately, they are disabled by default, since they are still in development). All functions are checked by the author himself, and their values ​​are selected for the fastest and most stable operation. The main emphasis is on the performance and responsiveness of Firefox in conditions of aggressive surfing. Memory consumption in comparison with the single-processor mode should grow by about 12% -17%, taking into account the forced use of hardware acceleration, and without it no more than 10%.

Since the project is just developing and is not completely stable, edit in the new profile and then compare the result. I consider it inappropriate to refer to my results because of the dampness of the project. The results can simply vary dramatically.


Applicable on all versions above 44beta

Warning: Applicable on all versions above 44 on the beta update channel. The fact is that part of the code of new functions simply will not be on Firefox with an update channel other than beta or developer, in order to maintain stability.
To change the update channel, you need to replace the line “realise” with “beta” in the channel-prefs.js file. The file is located in your folder: Firefox / defaults / pref

May not be compatible with some add-ons.

Edit about: config:

browser.tabs.remote.autostart.2 - true
layers.async-pan-zoom.enabled - true
dom.ipc.plugins.asyncInit - true (plugin asynchrony)
javascript.options.asyncstack; true 
layers.acceleration.force-enabled = true (disable for problems with the video)
network.http.max-connections = 512
network.http.pipelining = true
network.http.pipelining.aggressive = true
network.http.pipelining.max-optimistic-requests = 32
network.http.pipelining.maxrequests = 96
network.http.pipelining.maxsize = 600000
network.http.pipelining.ssl = true
network.http.proxy.pipelining = true
browser.cache.use_new_backend - 1 (new caching system)
memory.free_dirty_pages - true
browser.tabs.animate = false
image.cache.timeweight = 100
browser.display.show_image_placeholders - false
nglayout.initialpaint.delay; 0 (create integer) 
browser.display.auto_quality_min_font_size - (-1)  

Remove the frame around the link during the click:

browser.display.focus_ring_on_anything (Boolean) = false
browser.display.focus_ring_width (Integer) = 0


network.dns.disableIPv6 - false  
network.dns.disablePrefetch - true
network.predictor.enabled - false
network.predictor.cleaned-up - true
network.prefetch-next - false
browser.send_pings - false
network.http.speculative-parallel-limit - 0 (zero)
privacy.trackingprotection.enabled; true (bug protection)
browser.safebrowsing.enabled; false
browser.safebrowsing.malware.enabled; false
datareporting.healthreport.service.enabled; false        
browser.safebrowsing.downloads.remote.enabled; false
extensions.blocklist.enabled - false
extensions.getAddons.cache.enabled - false - false
media.video_stats.enabled - false
dom.battery.enabled - false
media.peerconnection.enabled = false


dom.gamepad.enabled; false
dom.vr.oculus.enabled; false

Disable Hello

loop.enabled; false

Firefox Ads & Snippets - leave a blank line - leave a blank line
browser.aboutHomeSnippets.updateUrl - leave a blank line

Now the quality of work will increase significantly. Good luck.

Also popular now: