Published by

Brink's Avatar

Posts: 29,341

Show Printable Version 

How to Enable or Disable Google Chrome Background Tab Throttling in Windows

information   Information
The stable channel of Google Chrome 57 for desktop ships with the background tab throttling power optimization feature.

Announced from the Chromium Blog:

Efficient power usage is an important aspect of speed, one of Chromeís key pillars. To prolong battery life, Chrome should minimize power impact from things users canít see. This includes background tabs, which consume a third of Chrome's power usage on desktop. Starting in version 57, Chrome will throttle individual background tabs by limiting the timer fire rate for background tabs using excessive power.

Chrome has focused on improving the user experience by throttling tab performance for many years. Like many browsers, Chrome has limited timers in the background to only run once per second. Via the new throttling policy, Chrome 57 will delay timers to limit average CPU load to 1% of a core if an application uses too much CPU in background. Tabs playing audio or maintaining real-time connections like WebSockets or WebRTC wonít be affected.

We've found that this throttling mechanism leads to 25% fewer busy background tabs. In the long-term, the ideal is for background tabs to be fully suspended and instead rely on new APIs for service workers to do work in the background. Chrome will continue to take steps in this direction to prolong users' battery life, while still enabling all the same experiences developers can build today.

This tutorial will show you how to enable or disable background tab throttling in Google Chrome for your account in Windows 7, Windows 8, or Windows 10.

Note   Note
Budget-based background timer throttling

It operates as follows:
  • Each background tab has a time budget (in seconds) for running timers in the background.
  • A page is subjected to time budget limitations after 10 seconds in the background.
  • A timer task is allowed to run only when the time budget is non-negative.
  • After a timer has executed, its run time is subtracted from the budget.
  • The budget continuously regenerates with time (currently set to a rate of 0.01 seconds per second). Note that this budget regeneration rate can be tweaked as Chrome collects more data about throttling behavior.
There are a number of automatic exemptions from this throttling:
  • Applications playing audio are considered foreground and arenít throttled.
  • Applications with real-time connections (WebSockets and WebRTC), to avoid closing these connections by timeout. The run-timers-once-a-second rule is still applied in these cases.
Note that this mechanism uses wall time, not CPU time. Itís a good approximation of CPU time and penalises blocking the main thread for a long time.

Finally, remember that if you are using long tasks in the background, your application can be throttled for a very long period of time (up to 100 times the duration of your task). Split your work in to chunks of 50ms or less per the performance guidelines and use the visibilityChange listener to avoid doing unnecessary work in background.

Here's How:

1. Open Google Chrome.

2. Copy and paste the link below into the address bar of Chrome, and press Enter.


3. Select Default, Enabled, or Disabled under the Throttle expensive background timers setting for what you want. (see screenshot below)

Name:  Google_Chrome_Background_Tabs_Throttling-1.png
Views: 3775
Size:  51.1 KB

4. Click/tap on the RELAUNCH NOW button at the bottom to apply. (see screenshot below)

Name:  Google_Chrome_Background_Tabs_Throttling-2.png
Views: 3664
Size:  43.1 KB

That's it,