Table of Contents
I personally think that Google Chrome is a great browser and I tend to use it over Mozilla Firefox and other great alternative: not only for its speed and reliability, yet also for the awesome plugin & extensions marketplace it has. Conversely, its support (the Google Help Website and the Google Chrome Help Forum) is quite bad, expecially if we compare it to the great support provided by the Firefox Community Forums: the overall technical experience of the contributors may vary, but it's mostly low: from my experience, I can say that the vast majority is composed of "average users" more than willing to help each other out, yet often unable to provide the right answer(s).
This isn't a big deal when everything works as it should, however it can easily become a problem when you're struggling with some issue related to Google Chrome functions or behaviours - expecially the performance-related issue such the one mentioned above: overall slowness, 100% CPU usage, 100% memory usage, and so on. I stumbled upon these issues a number of times and I rarely found something useful in the community forums - thus having to solve it alone, with my own research.
By doing that I was able to find three simple yet critical issues that are behind most of the Google Chrome performance problems:
- Resource-heavy extensions
- Background Tabs
- Background Pages and Apps
- Hardware acceleration
In the following paragraph we're dealing with them in details.
Before starting, it's worth noting that some of these topics are also mentioned in the Speed up Google Chrome official tutorial, a short article released by Google some years ago - acknowledging the fact that Chrome has a bad reputation for hogging system resources. However, the "how to fix" part of that post could be better - which led me to write this post.
Resource-Heavy Extensions
The first thing to do when you're dealing with Chrome performance issues is to carefully check all of your installed extensions to see how much they "cost" in terms of system resources. Luckily enough, there are two easy ways you can figure out how much RAM, CPU and Disk Chrome is using in real-time.
If you're using Windows, the first of them is obviously the built-in Task Manager, which offers a decent overview:
As you can see, Chrome appears a number of times there - one for each active tab and/or process: since extensions are also processes, you can already have a good general glimpse of how your system is going.
However, the Task Manager is unable to show you the process names, at least in a readable format: for this very reason, it's not the proper tool to individually check out your installed extensions. To drill down further and understand exactly how much RAM each site, extension, or plugin is using, you can opt instead for Chrome’s very own Task Manager, which you can access by clicking SHIFT+ESC (or by using the More Tools menu):
Using the Chrome built-in task manager you can analyze the behaviour of each individual extension: it also allows you to use the Terminate Process button to instantly kill RAM-hogging processes. This could be very useful to perform your performance tests, as you'll be able to see & measure the outcome in real-time.
Once you've completed your check-up phase, you can go to More tools > Extensions and disable the extensions you found to be critical for your system performance - assuming that you can live without them.
Background Tabs
As you might already know, keeping a lot of open tabs in Google Chrome is a bad behaviour (performance-wise, at least) that can easily waste your machine's resources: if you're on a laptop or a mobile device, these tabs will drain your battery life; however, the real problem about that is that they will also degradeyour OS performance, as these websites will most likely keep loading tasks and fetching data. This can cause serious CPU and/or memory issues, expecially if you're leaving Google Chrome open for a long time.
To fix that, you can use one of the many existing Google Chrome extensions that can shut down and/or put to sleep the unused tabs. Here's a list of the one which I liked the most:
All these extensions can be configured to automatically (or manually) "freeze" the background tabs, thus saving up most of their memory: this is a real lifesaver by all means, considering the impact they have on Google Chrome and on the operating system resources. If you're either working with a lot of tabs and/or leaving Google Chrome always open I strongly suggest you to try one of them to see if it can help you solve your performance issues.
If you want a slightly different approach you can also try OneTab, which works in a slightly different way: it basically gives you a "panic button" that you can click when you think you're dealing with too many tabs, which will convert all of your tabs into a "list": when you need to access the tabs again, you can either restore them individually or all at once. When your tabs are in the OneTab list, you will save up to 95% of memory because you will have reduced the number of tabs actually open in Google Chrome.
Since I always have a whole lot ot tabs, I personally use The Great Suspender combined with OneTab and I can say that they perform great together: you can try this setup of experiment with other combos, but you'll be mostly fine even with installing a single one of them.
IMPORTANT NOTE: using these extensions might be not needed in a near future, at least for mobile devices: XDA Developers reports that Chrome for Android will soon choke off background tabs after five minutes of inactivity. That's a great news, considering how much Google Chrome impacts the mobile device's battery life nowadays.
Background Pages and Apps
Many extensions and web apps use background pages that do their work where you can't see them. for example, if you use Google Mail Checker, a background page works to send new message alerts. Background apps work entirely in the background and will definitely drain your system resources. Most of them do have a lifetime bound to their "master" page, tab or extension, yet ther are some that can keep running even after you close the Chrome browser.
As a matter of fact, you wouldn't want to kill these background apps while Google Chrome is open, as doing that will most likely cripple your active tabs: however, ensure that they will be shutdown when you close the browser window is almost always a good choice - unless you have valid reasons (and installed extensions) to do otherwise. In case you don't, I strongly suggest you to turn off such feature by following these steps:
- From the Google Chrome's menu, go to the Settings page.
- At the bottom, click Show advanced settings (or just Advanced, depending on your OS).
- In the System section, uncheck the Continue running background apps when Google Chrome is closed option.
That's it.
Hardware acceleration
Like most applications, Google Chrome has a neat hardware acceleration feature that - when enabled - passes most of the graphical intensive tasks within the browser to the GPU, meaning it makes the most of your hardware. This is generally a good thing, for at least two reasons:
- The GPU is natively designed to handle these tasks, hence so your browser will perform much better;
- Using the GPU for these graphical tasks will free up the CPU, which will be able to do other tasks.
To enable hardware acceleration in Google Chrome perform the following steps:
- From the Google Chrome's menu, go to the Settings page.
- At the bottom, click Show advanced settings (or just Advanced, depending on your OS).
- In the System section, check the Use hardware acceleration when available option.
Although having the hardware acceleration feature turned on is generally a good thing, there could be some scenarios where it might not be worth it or even slow down your system. There are numerous tests you can run to see if hardware acceleration is actually doing anything useful or not. The best way to check for that is to visit the Demos of open web technologies page, where you can find a lot of CPU-GPU related tests that you can run with-and-without GPU acceleration to see if you should enable or disable it. It's worth noting that, although being resources provided by Mozilla (the people behind Firefox), these tests work equally well in Chrome.
Conclusions
That's about it: I definitely hope that this small guide will help those who are struggling with Google Chrome's performance issues to fix their problems for good!