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?

  • 2
    Any plug-ins installed in Chrome? – Dave Jan 6 '14 at 10:08
  • 7
    Shift + ESC => Task Manager for Chrome – ta.speot.is Jan 6 '14 at 10:33

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?

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

  • 1
    I 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. – user438049 Apr 16 '15 at 4:14
  • @DSIncubus ty for the tip, I'll add it to answer. – LogicDaemon Apr 16 '15 at 17:56
  • 2
    After Enabling Hardware Acceleration, the cpu usage has gone down. So far so good. Thanks. – Mukesh Chapagain Dec 2 '15 at 9:29
  • @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 Dec 2 '15 at 18:42
  • I think I had disabled it before but I don't remember why. – Mukesh Chapagain Dec 3 '15 at 3:20

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.

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.

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.

  • 3
    delegated renderer is an Android flag - the poster clearly stated that he/she is on Windows. – leek Jun 20 '14 at 6:21

protected by bwDraco May 24 '15 at 18:46

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.