How to reduce Google Chrome's CPU usage?

49

34

I have started using Google Chrome (up to date) on Windows 7 (everything up to date) on a clean install I did a few days ago and compared to Firefox I am seeing huge CPU spikes (up to 100% CPU utilization) when opening empty tabs. I have tried turning off features like network predication and etc. to no effect.

Is there a way to reduce the amount of CPU usage by Chrome?

Here is one strange thing I have noticed that bothers me: when I am playing YouTube video/audio (both the flash version and HTML5 version) when I click on the plus button on the top to open a few new windows it causes the video/audio to lag. I don't experience anything similar when using Firefox. The most strange thing is that it also does not happen when I open the new pages in another Chrome profile or in private browsing. Any idea why this is happening? Aren't these pages supposed to be kept in their separate processes? Why the difference between opening them in another profile and in the same profile?

Jane Johnson

Posted 2014-01-06T09:52:27.123

Reputation: 491

2Any plug-ins installed in Chrome? – Dave – 2014-01-06T10:08:13.127

7Shift + ESC => Task Manager for Chrome – ta.speot.is – 2014-01-06T10:33:18.420

Answers

49

First, check if it's not extensions or plugins, or some background workers a site uses (to open Chrome Task Manager, press Shift+Esc or Menu → More tools → Task Manager).

If it's not, then my guess is that this is related to hardware acceleration. But note I've not seen this cause in years, definitely not since Windows 8.

First, turn off hardware acceleration at bottom of main settings page (click Show advanced settings... at bottom of chrome://settings, scroll to the end, un-check Use hardware acceleration when available). Recent Chrome versions ask to restart, but from my experience this option is applied immediately, at least partially.

If slowdowns didn't go away even after Chrome restart, open chrome://flags (put this in the Chrome address bar and press Enter) and set up following:

  • Disable accelerated 2D canvas – Disable
  • GPU rasterization - Disable
  • Hardware-accelerated video decode - Disable
  • Zero-copy rasterizer - Disable

(that was for Chrome 53.0.2785.89, other options may be available on older systems, where Chrome does not update, for example:

  • Disable DirectWrite - Enable
  • Enable one-copy rasteriser - Disabled
  • Enable zero-copy rasteriser - Disable
  • Disable hardware-accelerated video decode – Enable

)

then click Relaunch now at bottom of the window.

If everything will become fine (but a little slower overall maybe), you can switch options back to default one by one until you find one causing the trouble.

(if you won't find an option in flags list, skip it. Maybe also look for other options about GPU and hardware acceleration and make sure HW acceleration and GPU usage are disabled. Chrome gets updates quite often, and flags get added and removed in almost each version).

Answers to the questions:

Is there a way to reduce the amount of CPU usage by Chrome?

if these peaks caused by native chrome engine (JavaScript or HTML parser for example), then no. But more probably this is extensions or buggy videodrivers (their functions are being used for hardware acceleration).

when I click on the plus button on the top to open a few new windows it causes the video/audio to lag. <…> Any idea why this is happening?

only guesses. Either Extension or plugin may cause this, or adding another layer to composited window causes videodriver lag (composited – window with several layers, and some of them rendered by hardware, for example, by hardware video decoding). This is why I suggested to turn off hardware acceleration and check.

Aren't these pages supposed to be kept in their separate processes?

they are kept indeed, but there is one main process (per profile) which outputs information to window. If this process halts for some reason, window updates will stop, and it will look like Chrome isn't responding. I guess, sound output is also done via that main process, this is why sound also lags.

You can check process tree with Process Explorer.

Why the difference between opening them in another profile and in the same profile?

Extensions and Plugin setting are per-profile, and Extensions are switched off by default in Incognito mode. This is why it may behave differently with different profiles (even with single main chrome process).

LogicDaemon

Posted 2014-01-06T09:52:27.123

Reputation: 1 681

1I was having the same issue. Following LogicDaemon's reply I went into chrome://flags and started enabling and disabling values one at a time. Enabling *"Disable DirectWrite"* seems to have fixed the issue for me. – None – 2015-04-16T04:14:43.687

2After Enabling Hardware Acceleration, the cpu usage has gone down. So far so good. Thanks. – Mukesh Chapagain – 2015-12-02T09:29:56.763

@MukeshChapagain you mean, hardware acceleration was disabled by default for you? Actually hardware acceleration is exactly for reducing CPU load, and it's ON by default; but sometimes it does the opposite due to buggy video drivers. – LogicDaemon – 2015-12-02T18:42:49.687

I think I had disabled it before but I don't remember why. – Mukesh Chapagain – 2015-12-03T03:20:30.823

I know the OP asked about Windows. Does anyone know if these same flags are available in Ubuntu 14.04 for Chrome 47? I only see Disable accelerated 2D canvas, and Enable zero-copy rasterizer, but not Disable DirectWrite. What's interesting is Disable hardware-accelerated video decode exists, but it says "Sorry, this experiment is not available on your platform." So why don't I see the one about DirectWrite? Perhaps it's been removed in the last 2 years? – Tyler Collier – 2016-01-13T17:38:27.730

@TylerCollier I'm on Windows and those flags aren't present either. Chrome Version 53.0.2785.89 m (64-bit) – emzero – 2016-09-01T16:50:39.307

Chrome changed a lot under the hood since then, and also lots of sites started using background workers. You better identify your problem first, because what OP asked about caused by video drivers. I've not seen it in years, definitely never since Win8 (I'm maintaining around 300 PCs). – LogicDaemon – 2016-09-02T05:19:44.530

2

Reset Google Chrome:

  1. Click the Chrome Menu on the toolbar and then click "Settings."

  2. Select "Show Advanced Settings" from the bottom of the page and then click "Reset Browser Settings."

  3. Click "Reset" to revert your browser configuration to default.

tayyab islam

Posted 2014-01-06T09:52:27.123

Reputation: 21

1

A trick I learned from a few sites:

  • Use –-purge-memory-button in Chrome's command line and click Purge memory in Chrome's task manager and it will free up memory (if possible)

Obviously, just disable extensions and that'll save you memory as well.

Also, some sites have mentioned FooTab, an extenstion that pauses all other tabs upon startup until loaded.

boxspah

Posted 2014-01-06T09:52:27.123

Reputation: 359

0

Open up chrome://flags and search for delegated renderer and see if you can enable the flag to enable the delegated renderer, aka Übercompositor. You must also be sure you have accelerated renderering enabled since this relies on the GPU. You can check this out on the chrome://gpu url.

What this does is to make the rendering process skip the compositing step and sends high-level drawing commands to the browser process, merging it with it's own compositing pass. This reduces the GPU fill rate, and a great way to help reduce the power used.

HarvesterX

Posted 2014-01-06T09:52:27.123

Reputation: 9

3delegated renderer is an Android flag - the poster clearly stated that he/she is on Windows. – leek – 2014-06-20T06:21:44.530