This site may earn affiliate commissions from the links on this page. Terms of use.

Afterward eight years of piece of work, Mozilla only took the wraps off its multi-threaded rendering engine and declared it fix for the full general public to utilize. The new Firefox 54 is capable of using multiple threads simultaneously — a major stride forward for the browser. In a new Medium post, Mozilla's Ryan Pollack discusses how the multithreaded engine works and what advantages and differences Mozilla brings to the table compared with Google Chrome.

The post is written to be easily understood, and starts off by explaining the divergence between a process (the case of a program being executed) and a thread (mostly divers as the smallest sequence of programmed instructions that can exist managed independently by a scheduler).

Process-and-Threads

Years ago, Mozilla made a fateful determination well-nigh the future of Firefox evolution — one that made it much more difficult to integrate multiprocessing into the existing browser. Roughly 10 years ago, the major way Firefox had distinguished itself compared with Cyberspace Explorer was through its support for add together-ons and extensions. Simply the same add together-on abilities that had made the browser popular as well fabricated it difficult to add multiprocessor support. Mozilla therefore committed to transitioning away from its old addition model and towards multi-browser web extension support, while simultaneously launching the Electrolysis projection to create a new browser version that could support a multi-processing compages.

Terminal year, the visitor launched the first stage of Electrolysis, past splitting its UI and its spider web page content to run in two different processes. With the release of Firefox 54, Mozilla has completed its transition to a multithreaded uarch.

What sets Firefox autonomously

Chrome and Firefox at present both support multithreading, but they practice it in different ways. In Chrome, each and every tab you open up gets its ain content procedure. 10 tabs, 10 processes. Ane hundred tabs, 100 processes. This arroyo maximizes functioning, merely y'all pay a hefty penalty in retentivity consumption and (when applicative) battery life. Firefox doesn't take this approach to the trouble, merely instead spins up to 4 content process threads by default.

"[Y]our kickoff 4 tabs each utilize those 4 processes," Pollack writes, "And additional tabs run using threads inside those processes. Multiple tabs within a process share the browser engine that already exists in memory, instead of each creating their own."

FF-vs-Chrome

Chrome uses a separate content process and engine for each website instance,
simply Firefox reuses processes and engines to limit memory usage.

Mozilla claims that Firefox also uses dramatically less memory than other competing browsers, with Chrome using 1.77x more RAM than Firefox in 64-bit and ii.44x in 32-bit mode. The differences were less dramatic in Mac OS 10 and Linux (1.36x and 1.42x, respectively). According to the team, Firefox leads in every category. RAM usage isn't a battery life event — memory consumes about the aforementioned corporeality of power whether you are storing data in it or not, provided that you aren't running some kind of page-hammering criterion. Just having more than RAM available does hateful a improve, smoother experience when juggling a lot of open tabs while running other programs.

Going forward, Mozilla is launching a new initiative, dubbed Project Breakthrough, to focus on optimizing the browser engine that runs within a content process. Pollack notes that the new project will utilise Rust, a system programming linguistic communication Mozilla sponsors. Pollack writes:

Equally function of the projection, Mozilla engineers are using Rust to code super-fast parallel algorithms that would exist incredibly difficult to lawmaking safely with C++. With these algorithms, major pieces of Firefox's engine (e.g. CSS styling), will run in parallel across multiple CPU cores, instead of sequentially on 1 cadre. Too every bit part of Quantum, Firefox will utilize threads to focus computing power and your network connection on the tabs yous're actively using. Firefox will go much faster, while still existence respectful of your memory and your needs.

Could this be the beginning of a resurgent Firefox? We'll accept to expect and see. Chrome has eaten well-nigh of the browser market place in the U.s.a., simply people in one case thought that IE represented an unstoppable juggernaut with an iron grip on the market thank you to Microsoft's ownership of the PC space. If that kind of upset can happen in one case, it could certainly happen once again.