Power consumption is an important consideration in building a modern browser and one objective of Internet Explorer 9 is to responsibly lead the industry in power requirements. The more efficiently a browser uses power the longer the battery will last in a mobile device, the lower the electricity costs, and the smaller the environment impact. While power might seem like a minor concern, with nearly two billion people now using the Internet the worldwide implications of browser power consumption are significant.
This post looks at how we measure power consumption, shares the results from recent engineering tests comparing browser power requirements, and explains how fully hardware accelerating Internet Explorer 9 has improved overall power efficiency.
How a browser uses the underlying PC hardware has a significant impact on power consumption. The components used in modern PC’s are power conscious and have the ability to conserve power through techniques such as putting idle hardware to sleep and coalescing computation. Browsers need to take these behaviors into consideration to efficiently use power.
With Internet Explorer 9 we followed several principles to guarantee industry leading power consumption. We focused on making IE fast - the quicker a browser can perform an action the less power the browser will consume. We focused on using modern PC hardware to accelerate IE - natively using the specialized hardware decreases power consumption. We focused on idle resource usage - the browser shouldn’t be doing work and consuming power when the user isn’t interacting with the browser. And we focused on following device power management guidance - the browser should respect the guidance of the hardware manufactures.
To measure power consumption, you have to monitor the power consumed by individual PC components across different real world customer scenarios. Every PC component contributes to power consumption and the patterns around their power usage vary over time based on what’s occurring.
We worked closely with our hardware ecosystem during the development of Windows 7 to build one of the worlds most advanced PC power testing environments. We’ll be using some of the hardware from this test environment, including an instrumented Intel reference PC based on the Calpella architecture, for the measurements in this post.
For fun, here are a few pictures of the machines we use to measure power.
By using an instrumented PC we’re able to measure the power usage of each PC component, including CPU, GPU, GMCH, Memory, Uncore, Hard Disk, Network, USB and many others. This is a more reliable approach than measuring overall system power consumption or battery durations which both have higher variance. Wires from the sense resistors on the instrumented PC are connected to a PCI-6259 DAQ card from National Instruments. With this approach we’re able to sample individual measurement points thousands of times per second and record these result for analysis.
Before running any power test the instrumented machine is restored to a baseline configuration of Windows 7 Ultimate, fully updated with the latest updates and device drivers, and a defragmented hard drive. This ensures the system itself won’t interfere with the power measurements and makes the browser the only variable.
To ensure Internet Explorer 9 is achieving our goals, we measure power consumption across six scenarios. These scenarios cover both todays HTML4 based Web and the HTML5 based Web applications of tomorrow. We allow each scenario to run for 7 minutes and look at the average power consumption over that duration. This allows us to see multiple power cycles and ensure statistically accurate results.
The scenarios we’re going to look at today are:
We’ll start by measuring Windows 7 Ultimate without any additional software installed or running. The power consumption for the system over the duration of the test can be seen below.
The vertical axis shows the Watts consumed for each individual PC component. As you can see each PC component consumes between 0.2 and 1.5 Watts. Over the course of this test the average power consumption for each component was System (10.529), CPU (0.042), Memory (0.257), Uncore (1.123), GPU+GMCH (1.359), Disk (1.120), and LAN (0.024).
To gauge how much power the browser UI itself consumes, we next measure each browser navigated to about:blank. In this scenario the browsers are not executing any markup and are close to idle, however differences in power consumption begin to emerge. Each browser exhibits the following power consumption patterns:
With this scenario most browsers are close to the system idle power usage, meaning they have little impact on power consumption. The exception is Opera 11 which is consuming about 5% more power than other browsers when idle.
One reason for this is that Opera changes the system timer resolution from the default 15.6ms to 2.5ms which prevents the CPU from entering low power states.
From Timers, Timer Resolution, and Development of Efficient Code June 16, 2010 Page 3:
The default timer resolution on Windows 7 is 15.6 milliseconds (ms). Some applications reduce this to 1 ms, which reduces the battery run time on mobile systems by as much as 25 percent.
Your choice in browser makes a difference even when the browser is idle and minimized.
To understand the power consumption when browsing between Web sites, we next measure each browser loading and viewing one of the world’s most popular news sites. To ensure consistent results the news site was cached on the network and each browser loaded an identical copy of the site. To provide more context on the power consumption patterns, we’ll walk through each browser individually.
You can see the average power consumption for Internet Explorer 9 follows a different pattern but does not consume significantly more power than the system idle scenarios. Internet Explorer 9’s power consumption for each component was System (11.728), CPU (0.041), Memory (0.273), Uncore (1.152), GPU+GMCH (1.391), Disk (1.198), and LAN (0.697).
When we look at Chrome 10 a very different pattern emerges. Where Internet Explorer 9’s power consumption was relatively stable, you’ll notice that Chrome 10 power consumption is cyclical with regular power spikes that push GPU and Uncore power consumption to nearly 3 Watt’s for those components. Chrome 10’s power consumption for each component was System (13.561), CPU (0.198), Memory (0.300), Uncore (1.810), GPU+GMCH (2.027), Disk (1.311), and LAN (0.697).
When we look at Firefox 4 we see a stable pattern consistent with Internet Explorer 9. One thing to note about power consumption is that low and steady consumption is more efficient than cyclical and high power spikes. Both Firefox 4 and Internet Explorer 9 do well against this objective. Firefox 4’s power consumption for each component was System (11.830), CPU (0.048), Memory (0.273), Uncore (1.170), GPU+GMCH (1.399), Disk (1.275), and LAN (0.697).
When we look at Opera 11 a cyclical consumption pattern is visible again. It’s that cyclical pattern that impacts the system power consumption over time. Opera 11’s power consumption for each component was System (12.833), CPU (0.108), Memory (0.283), Uncore (1.382), GPU+GMCH (1.637), Disk (1.283), and LAN (0.690).
Safari shows a stable pattern similar to Internet Explorer 9 and Firefox 4. Safari 4’s power consumption for each component was System (12.060), CPU (0.043), Memory (0.272), Uncore (1.122), GPU+GMCH (1.379), Disk (1.211), and LAN (0.690).
Internet Explorer 9 exhibits again a fairly stable pattern with the GPU clearly being utilized. Internet Explorer 9’s power consumption for each component was System (14.345), CPU (0.462), Memory (0.527), Uncore (1.847), GPU+GMCH (2.170), Disk (1.169), and LAN (0.697).
Compare with Internet Explorer’s power consumption, Chrome 10 exhibits a very different pattern. The two camel hump CPU power consumption is paramount consuming over 5 Watt at its peaks. In addition the GPU and Uncore usage is also up to a Watt larger than in Internet Explorer. Both of these factor into the dramatic difference in overall average consumption of IE’s 14.345 and Chrome’s 19.283. Chrome 10’s power consumption for each component was System (19.283), CPU (2.980), Memory (0.493), Uncore (2.673), GPU+GMCH (2.905), Disk (1.274), and LAN (0.697).
Firefox 4’s power consumption for each component was System (16.708), CPU (1.188), Memory (0.784), Uncore (2.146), GPU+GMCH (2.550), Disk (1.335), and LAN (0.697).
Safari 5’s power consumption is significantly higher than all of the other browsers. Specifically the CPU usage is even higher than Chrome 10. Safari 5’s power consumption for each component was System (24.321), CPU (6.597), Memory (0.477), Uncore (3.120), GPU+GMCH (3.280), Disk (1.155), and LAN (0.690).
We did not run Galactic on Opera since at this time it does not run on Opera, specifically, Galactic uses ECMAScript 5 properties API which Opera 11 does not support.
Finally, no Internet Explorer 9 discussion is complete without testing FishIE Tank, one of our favorite demos. To ensure a fair and equitable test on this hardware, we’re only running with 10 fish swimming around the screen. This allows every browser to be able to achieve 60 frames per second (FPS). In this scenario each browser must update the screen 60 times per second which is considered real time animation and something we believe is important to ensure HTML5 success.
In this scenario each browser’s power consumption looks dramatically different by comparison:
For many customers, battery life is the most important gauge of power consumption. A typical laptop uses a 56 Watt hour battery, which means the laptop can consume 56 Watts worth of energy for one hour before running out. The fewer Watts the browser consumes the longer the laptop battery will last. Where’s how the battery life works out across these scenarios for a standard 56 Watt laptop.
We are using an equal weighting for each scenario, meaning each would be run the same about of time. So the power consumption and battery life of a 56Wh battery is:
Browsers play a significant and important role in overall power consumption. The more efficiently a browser uses power the longer the battery will last in a mobile device, the lower the electricity costs, and the smaller the environment impact.
How a browser takes advantage of the underlying hardware makes a significant impact on power consumption not to mention performance and user experience. As computing becomes more mobile, and as the HTML5 based Web becomes pervasive it’s important that browsers make power consumption a focus. We hope and encourage the industry and other browser vendors to follow us on the path to a more power efficient Web.
Special thanks to the platform engineering teams at Intel Corporation who have worked closely with us to make power a priority throughout the Windows 7 and Internet Explorer 9 releases, and for their assistance reviewing the results of our tests.
—Walter VonKoch, IE Performance Program Manager, Matthew Robben, Windows Power Program Manager, and Jason Weber, IE Performance Lead