How Mozilla Firefox and Google Chrome use processes and threads

Pasindu Chinthana
2 min readJul 17, 2020

Processes and threads

A Process can be described as executing a program of an application. It contains an executable program, associated data needed by the program (variables, workspace, buffers, etc.) and the execution context of the program.

With the introduction of multithreading techniques, the process was divided into threads that can run concurrently. There can be one or more threads to a process. A thread has access to the memory and resources of its process, shared with all other threads in that process.

Google Chrome

google chrome browser interface
Google Chrome

Google Chrome has a multi-process architecture. Each process has many threads including the main thread. When a new tab is opened it creates a new process for that tab.

Mozilla Firefox

firefox browser interface
Mozilla Firefox

In the beginning, Mozilla Firefox was using one process to run. But current versions of Mozilla Firefox uses separate processes for browser UI and web content. It uses separate threads for each tab.

Google Chrome vs Mozilla Firefox

Browser Architecture — Google Chrome vs Mozilla Firefox
Browser Architecture — Google Chrome vs Mozilla Firefox

Since Google Chrome uses separate process for each tab, it consumes much RAM usage than Mozilla Firefox. It has to maintain separate instances of its chrome engine in every process. Nearly it consumes 100mb per tab.

Firefox uses separate threads for each tab. Since they belong to the same process, it does not need a separate instance of its browser engine. Therefore it does not consume much RAM usage comparing to Google Chrome. And it is very faster when passing context between tabs since they belong to the same process.

If some process blocking event occurred, in Google Chrome it does not affect other tabs. But in Firefox it might block other tabs since they are running inside the same process.

--

--