Electrolysis or Firefox multiprocess

Questo articolo è stato scritto oltre 1 years, il contenuto potrebbe essere datato.

One of the major drawbacks in Firefox compared to its main rival “Chrom*” is the lack of multi-process support which could take full advantage of the CPU’s computing power.

This support has been named Electrolysis, code-name e10s,and has been developed for some years yet only since last year it has been in the Nightly builds .

The main reason why it isn’t yet available for stable Firefox versions are the extensions…

As you can see on Are we e10s yet? there are several extensions that, because of some Firefox’s API not fully compatible or because of the extension itself not integrating the new APIs, do create issues in the browser’s operation. For this very reason,to date the only way to test e10s is to download a Nightly build and then set the parameter browser.tabs.remote.autostart to true in about:config. In itself the fact that this option isn’t enabled by default, tells that it isn’t safe for everyday use.

P.S. : enabling this in a build other than a nightly could cause Firefox to crash!

Extensions such as Greasemonkey or Firebug for example do not yet fully support this feature, however the landing in the release branch is to be expected in Firefox 36, while the integration in the Aurora branch is planned for version 34 to allow developers to update their extensions.

Now we are on version 30, which means that there will be no e10s in the stable branch for the next nine months, however three months from now (given that 32 is the current Aurora version) Aurora users will be able to test e10s at their own risk.

Let’s talk more in detail about the current state.

Reading this document used by developers to keep themselves up to date, we find out that:

  • probably a dedicated extension to verify e10s support for all other extension will be released
  • probably the public unveiling for e10s could be before the next  Pwn2Own 2015 (usually held in March)

From the wiki page of this project we can also read:

What works:

Back and forward buttons
URL bar and search bar
Context menu (somewhat)
Middle clicking to open links
Flash (sometimes)
Add-on installation on a.m.o (without download progress)
The find bar
Session restore
Developer tools

What doesn’t work yet:

Drag and drop
Many addons
Many plugins
Click to play

From the Roadmap for Firefox 34 we can learn that:

  • session restore doesn’t work correctly
  • graphics dependencies haven’t been fully resolved

For release 35 an huge amount of extension and API testing is planned, therefore I believe that e10s won’t be reliable yet with release 34.

As for release 36, there will be quite a lot of work on plugins, in order to verify how Flash and all the others will perform in this new environment.

P.S. for those interested in the low-level workings of e10s,you can read this note.

The main issue with Electrolysis is that, unlike other features that have been integrated so far, bugs can potentially crash the browser or cause malfunctions in core features of the browser.

The public release of Electrolysis in 2015 should in turns boost Servo, the new rendering engine supposed to replace Gecko in the (hopefully, close) future.
Servo already features a multi parallel system to render page elements (which also works in Android), therefore once Firefox integrates a multi-process system as e10s (with separated processes for each page) the full integration of this two solutions will bring a detectable improvement on page loading timings and at the same time an excellent use of hardware resources.

When is Servo going to be released? Maybe, just maybe in 2016 we’re going to see a stable version.

I’m really keen to see Electrolysis at work, the latest Firefox releases have already matched Chrom*’s performance as far as speed and memory usage go.
Servo can indeed wait, it is after all a completely new engine and it is only fair that it would require so much time, considering that as we speak it only supports Linux 64bit and OSX 64bit.

Further reading on the subject:



Thanks Geko for the english translation!

Liked it? Take a second to support Mte90 on Patreon!
Become a patron at Patreon!

Leave a Reply

Your email address will not be published. Required fields are marked *