DEV Community

Cover image for The Curious Case of Chrome's Memory Consumption - Neverinstall it
Nilay Jayswal for Neverinstall

Posted on • Originally published at blog.neverinstall.com

The Curious Case of Chrome's Memory Consumption - Neverinstall it

The usual suspect

Google Chrome, albeit the most popular internet browser in the world, has always been infamous for hogging memory on devices. While the browser generally delivers smooth operation for everyday users, problems start when users open a second tab and another, and so on.

Try Chrome on Neverinstall here.

We can attribute the popularity of the browser to its powerful V8 JavaScript engine, which translates JS code directly into machine code. The V8 engine, like the one found in 007’s DB10, is a faster engine that delivers better performance when loading web pages and apps. However, the fact that Google designed the browser to deliver superior performance makes it a nightmare when the number of active tabs becomes more than a few.

How does it happen?

One of the reasons why Chrome gets slow when you open several tabs is that the engine is trying to allocate an equitable amount of resources to each tab to deliver the best experience to the user. However, this is where the core of the problem lies.

Split processes

Chrome treats every tab as an individual process. To put it into perspective, Chrome splits every tab a user opens, along with any plugins or extensions that may be installed on the browser, as a separate process. Therefore, when a user opens a browser, the Chrome browser does not consume memory as a single entity but rather as a group of resource-hungry web apps and pages consuming the RAM simultaneously. Notably, multiple processes can be found under Chrome, acting as a subset, in the task manager.

Prerendering

Another major cause of Chrome being so punishing on system memory is prerendering. Prerendering improves browsing speed and reduces loading time for a web page. The feature analyses and anticipates a web page that the user may visit next and pre-loads text and graphics on that page before the user navigates to it. Although this reduces the loading time of a page noticeably, it takes a toll on the system memory as the prerender becomes another process in the background.

Why does it happen?

While you might think treating each tab as a separate process is a horrible approach, it is necessary to stabilize the browser and web apps. Even if one tab crashes, the rest of the browser remains active and functioning. And while prerendering might seem like a bad idea, it does help save a lot of time while surfing the internet.

Inevitably, we sacrifice memory and system speed to improve web page performance. So how do we resolve this unfair quid pro quo?

Can the cloud save us?

The cloud use case is evolving, and the good old internet browser is no stranger. Although it seems ironic to use a browser to access the same over the cloud, the results are fascinating. A cloud browser can reduce resource consumption and dependency of the browser on the native while delivering all its functionality over an internet connection. At Neverinstall, the cloud browser is one of the use cases of our product.

At Neverinstall, we are building a next-generation personal cloud computer for every user. Our platform offers pre-installed and pre-configured applications that users can simply launch and start using.

Some of our most popular applications? Internet browsers. Chrome, to be specific.

We operate much like a cloud browser, hosting browsers on a platform located on a remote server. This allows us to offload the heavy lifting for the user and deliver performance on Chrome the way Google intended.
The experiment

To show you how it works, we conducted a brief experiment.

We opened 17 tabs with 17 different websites in the same order with the same conditions on the desktop. We chose the most popular websites to give a realistic representation of a typical use case.

We opened – YouTube, Facebook, Reddit, GitHub, Amazon, Twitch, Twitter, Gmail, Outlook, Techcrunch, CNET, Wikipedia, Netflix, Prime, Hulu, Office, and LinkedIn. (In this order.)

All background processes were identical, and we took the screenshot after the same interval on the same tab. And here are the results:

  1. What you see are the apps mentioned above opened on the Chrome browser. At 17 tabs opened in Chrome, we noted that the system consumed almost 1.5 GBs of system memory or RAM on this particular machine.

Image description

  1. What you see are the same apps mentioned above opened on the Chrome browser. However, the browser is now running within the Neverinstall platform.

At 17 tabs opened in Chrome within Neverinstall, we noted that the system consumed less than 256 MBs of system memory or RAM on this particular machine.

Image description

We noted a reduction of almost six times in terms of memory consumption when we ran the browser on Neverinstall. While our experience remained the same, we could open more tabs without reducing the performance and speed of the system.

Further, we have built the system to open as many as 1000 tabs simultaneously without consuming more of a user’s system memory and without hiccups.

How we do it

Neverinstall is a cloud platform that can run any GUI application on its remote servers and streams the application much like a video to the user's machine through the browser. Our state-of-the-art solution allows users to interact with the application virtually indistinguishable from a native machine without the drawbacks of hardware limitations.

Suggested Read - Why your browser is becoming an OS

Our platform handles the entire process of running and executing the browser application's code. As a result, Neverinstall’s instance is the only process created on your system.

To know more about how Neverinstall works, visit here.

Top comments (0)