Google will fix the battery-eating 'bug' in its Chrome browser

Google will fix the battery-eating 'bug' in its Chrome browser

Summary: Google dramatically reduced idle times in Microsoft Windows to make its Chrome browser seem "peppier" but the real result was shorter battery life on laptops, and the waste of unknown megawatts of power.

SHARE:
TOPICS: Google
28
chrome-browser
Google plans to fix the "bug" in its Chrome browser. Image: Google.com

At long last, Google plans to fix the "bug" — or "design feature" — in its Chrome browser that has reportedly been making Microsoft Windows run slower, shortening battery life, and wasting unknown megawatts of power mainly to make its browser look "peppier". But until it does, you may want to close Chrome when you're not using it, or possibly upgrade to Firefox.

The first bug report was filed on 14 June, 2010 and apparently fixed. Except it wasn't, and another was filed on 29 September, 2012. Unfortunately, that didn't get much attention even after Valve programmer Bruce Dawson wrote a blog post about it on July 8, 2013: Windows Timer Resolution: Megawatts Wasted.

As Dawson noted in a comment to the second bug report: "This bug needs to get fixed. It's a regression compared to Chrome's documented behaviour, it happens without Flash being loaded, and it happens on battery power. It not only wastes power and battery life, it also makes the PC 2.5 percent to 5 percent slower. I can't leave Chrome running on my laptop unless this is fixed. Chrome could save 10+ MW by fixing this bug, in addition to improving battery life."

What finally got the problem some attention was a post by Forbes contributor Ian Morris earlier this month: Google's Chrome Web Browser Is Killing Your Laptop Battery. The headline turned it from an issue that bothered a few programmers into one that had a significant impact on businesses and everyday consumers.

The problem is straightforward. Windows spends a lot of time asleep, to save power, but it wakes up every 15.625ms to see if anything needs doing. Chrome changed the timer to 1ms so it woke Windows up 1,000 times a second. This can be useful for some purposes, such as running Flash videos or playing games with high frame rates. Unfortunately, Chrome was increasing the global rate and not reducing it afterwards, which Internet Explorer does.

According to Microsoft: "With a resolution of 1ms, the low-power idle states are ineffective at reducing system power consumption and system battery life suffers. System battery life can be reduced as much as 25 percent, depending on the hardware platform. This is because transitions to and from low-power states incur an energy cost. Therefore, entering and exiting low-power states without spending a minimum amount of time in the low-power states can be more costly than if the system simply remained in the high-power state."

What's odd about all this is that it wasn't a bug, it was a "feature".

Google already knew it was causing problems before the 14 June, 2010 bug report. In fact, Chrome programmer Mike Belshe had already written a blog post about it 10 days earlier. In it, he admitted that "engineers at Intel pointed out that Chrome was causing laptops to consume a lot more power".

Ziff--Intel--286140_286140
Intel's graph of the CPU idling showed that power consumption doubled with the 1ms timer (top line).

Indeed, Intel had pointed out in 2008 that "there is a significant increase in the average power consumption by CPU (~0.5W to ~1.05W) when the interrupts are increased. The power penalties on future platforms are expected to be significantly higher than these, and there is a need for the applications to be sensitive to the interrupt rate."

Intel's graph (right, Figure 3 in its paper) shows that, when idling, power consumption more than doubled.

Belshe says: "We were not concerned much about the impact on desktops, because Flash, Windows Media Player, and QuickTime, were already causing this to be true. But for laptops, this was a big problem. To mitigate, we started tapping into the Windows Power APIs, to monitor when the machine is running on battery power. So before Chrome 1.0 shipped out of beta, we modified it to turn off fast timers if it detects that the system is running on batteries. Since we implemented this fix, we haven't heard many complaints."

It's not clear if it was fixed and then lapsed, or whatever. Either way, Google's programmers have certainly heard some complaints now.

And if you were ever desperate to finish something on your laptop when you were running out of juice, you may now have someone to blame.

Note: There are other reasons to dump Chrome. See: Now is the time to switch back to Firefox

Read more on browsers

Topic: Google

Jack Schofield

About Jack Schofield

Jack Schofield spent the 1970s editing photography magazines before becoming editor of an early UK computer magazine, Practical Computing. In 1983, he started writing a weekly computer column for the Guardian, and joined the staff to launch the newspaper's weekly computer supplement in 1985. This section launched the Guardian’s first website and, in 2001, its first real blog. When the printed section was dropped after 25 years and a couple of reincarnations, he felt it was a time for a change....

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

28 comments
Log in or register to join the discussion
  • HMMMMM

    My devious mind questions if this was intentional? Maybe to make Chromebooks look better?
    Doubt this would effect a Chromebook not running Windows hate or hate.1 or hate.1 update.
    dougvb@...
    • I don't think so

      This was quite a bit before Chromebooks, but it was clearly meant to make the Chrome browser appear to perform better than IE.
      Buster Friendly
      • Bluster fanboi ...

        ... " no-one uses IE except to download a better brwoser"

        And despite the hyperbole from this blogger, the 'problem' really isn't big enough to allow you - or any other fanboi - the blame Google for ALL your problems.

        Sorry.
        Heenan73
        • What problems did he mention?

          since you say he was blaming Google.
          thekman58
        • seriously?

          This issue was identified by a third party and confirmed by Google - that makes it clearly Googles fault.

          Whatever warped version of reality your from, your day pass is rescinded...
          aesonaus
        • canceled

          Anyone who uses the term "fanboi" is automatically written off as a source of useful information or intelligent discussion. Go back to your wrestling websites...
          vermonter
        • No one uses IE?

          Really? No one?
          *Gman*
    • No, it's just a tired old blogger

      .. who believes everything Microsft's PR team send him.

      Nowt to get too excited about.
      Heenan73
      • Sorry

        Sorry but personal attacks won't change a single fact.
        Buster Friendly
      • Huh?

        This isn't some unverified attack, this is something Google has confirmed through bug reports. :\
        Michael Alan Goff
  • Don't Be Google

    Yet more evidence that Google products (spyware) in general should be avoided. One question I have is how Chrome's manipulation of wakeup timer values affects its benchmark numbers in comparison to other browsers. I take issue with the author's proposed solution though. Rather than switching to FireFox, I would suggest that you switch to IE.
    Sir Name
    • Downgrade to IE?

      Are you serious?
      Heenan73
      • Yep

        Get away from the Google spy net and get all the cross platform synchronization.
        Buster Friendly
    • i never left :)

      And with ie11 it really is the best choice these days.

      Doesn't run your battery flat, does offer DNT and other privacy features, doesn't leach all your data to sell to advertisers/NSA/whoever else is willing to pay, does have good performance, doesn't chew up as much memory as the alternatives... The list goes on.
      aesonaus
  • Another Windows only problem

    Mac and Linux unaffected, since they employ a so-called "tickless kernel".

    I've read reports that Windows 8 also has a tickless kernel, and so is also unaffected by this bug.
    BrownieBoy-4ea41
    • tickless or not

      Doesn't matter if an OS is tickless or not.
      Tickless OS can in fact burn a lot of battery power too, depending on circumstances. There's plus side and down side for both. Tickless uses dynamic scheduling which can be even worse in different settings.
      Martmarty
    • And yet

      Chrome on OS X tends to kill battery life way more than Safari. >_>;
      Michael Alan Goff
    • So it shows

      That Google doesn't know how to develop applications for Windows or was done on purpose.
      Gisabun
  • Boy that didn't take long

    The "Google can do no wrong" crowd was quick. NOWHERE in this was Microsoft involvement mentioned at all, other than the technical details of the Windows power modes. And kids, even Google knew they did this and at one time "fixed" it (probably just commented it out). Wanna bet when they fell behind IE and Firefox that suddenly they uncommented it? And probably by then, the ones who knew what originally happened were no longer part of it (it happens that way a lot in software development). So here we are again.

    Yes, they could also be doing this to help the Chromebook and Android crowd. But as long as a sizable chunk of change is based on Windows users (especially in that coveted corporate space) it was a bad move. So now they got called out by the general user community and not just the geek squad. Time to comment it out again.
    jwspicer
  • The "solution" would be for Goole to make this an adjustable setting, but

    make the default upon installation to be the standard behavior that IE and other browsers follow. Then, if someone really wanted/needed the "snappier" behavior, they could have it. Not everyone wants or needs to the same settings, so 1) setting them to a safe default and 2)making them available to be changed by more advanced users is, in my opinion, the best option.
    jkohut