Power Management

I talked a while back about some issues around battery life, but recently a co-worker set me a really interest set of factoids about power management I thought I’d share with you..


  • There are no “miracles cures” on horizon for the issue of battery life. Fuel cells, although an exciting technology, are probably 5+ years away. It is pretty much up to the platform to extend battery life–and this includes software. (see http://www.pcmag.com/article2/0,1759,1772287,00.asp )

  • Intel is very active in evangelizing power management techniques for software applications and has some great content available (http://www.intel.com/cd/ids/developer/asmo-na/eng/dc/centrino/power/index.htm.).

  • Microsoft is investing is ramping up engineering efforts around power management. XP exposed functionality for power management: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dntablet/html/MobPCPowMng.asp. Vista ups the ante in that it will make extensive use of sleep and resume for both desktop and laptop machines.

  • Power management has a compelling up-side in terms of TCO. Internal research at Microsoft has shown that a power managed desktop could save on the order of $40/year. For a 30,000 seat organization, that amounts to annual savings of approximately $1.2M—a very attractive proposition for a large enterprise.


Check out this session at the PDC:


FUN319: “Windows Vista: Developing Power-Aware Applications”

Description: Industry forecasts predict that up to 67% of workforce computers will be mobile PCs. In addition, desktop PCs running Windows Vista will also use CPU power management to help enterprises save millions of dollars per year in energy costs. Your customers will therefore demand that you optimize your applications for power awareness. Discover the updates to the power APIs, the new sleep/wake states, and other improvements in Windows Vista that can to make your application the premier in its class. We cover best practices for power management, including how to integrate your application with system power policy and behaviors. We also show you how to register for and properly respond to common power management events, such as monitor on/off and user presence.


Comments (4)

  1. shaunbed says:

    When someone mentions power management, I always tend to wonder if there are other things that could be done with idle cycles.

    Saving on machine costs is wonderful but most of the time, a company’s major cost is labor.

    While thinking about ideas like sleep mode, it is important to remember that it is only one solution to the idle problem. Other solutions deal with using idle time to make the user more productive when they are not idle. The simplest of these is simple system maintenance like virus scans, disk defragmentation, and system updates. More complicated uses are things like anticipating the users needs and working to make those tasks faster when they are using the machine. This includes finding content for users and optimizing the machine for the tasks they are likely to perform in the future by preloading files and many other things.

    We should not only work to save on power but also work to improve the lives and efficiencies of the user.

    Shaun Bedingfield



  2. shaunbed says:

    The last post was more targeted at the desktop than the PDA or laptop.

    Power is still very important in those arenas because it is at such a premium.

  3. Mikel Berger says:

    A good read for CPT 355 about power for Windows Mobile devices http://blogs.msdn.com/windowsmobile/archive/2005/08/01/446240.aspx This is part of series on power, but one of the more interesting parts is the list of power states for smartphones and Pocket PCs from this post http://blogs.msdn.com/windowsmobile/archive/2005/08/10/450186.aspx * On: The user is interacting with the device. Everything is on. * BacklightOff: There has been a brief period of user inactivity (no one has pressed any buttons or touched a touchscreen). The backlight has been turned off, but everything else is on. When you set the backlight timeout values in the control panel, you’re setting how long the system should wait before going into this state. (Note that this state is new for WM 5.) * UserIdle: There has been a longer period of user inactivity. Both the backlight and LCD have been turned off. When you set the screen timeout value on a Smartphone control panel, you’re setting how long the system should wait before going into this state. This state is generally not used on PocketPC. There’s no reason to turn the screen off when the device is about to go to sleep (sleeping turns the screen off). However, if/when PocketPCs go to the "Always On" model, they’ll start using this state. * ScreenOff: You go into this state when someone specifically says to turn the screen (and backlight) off. For instance, in Media Player you can assign a button to turn the screen off. When you press it, we go into this state. This state is different than UserIdle, though. This state says, "The user wants the screen off and doesn’t want it to turn back on." UserIdle says, "The user hasn’t touched any buttons in a while, so we might as well turn the screen off to save power." In ScreenOff, pressing a button (other than the power button) doesn’t turn the screen back on. In UserIdle, pressing a button does turn the screen back on. Both PocketPC and Smartphone use this state. * Unattended: This is a confusing state in which the screen, the backlight, and the audio are off. I won’t go into too many details, other than to say that this is a PocketPC-only state that is used by applications which need to do things without alerting the user. While the PocketPC is in this state, the user thinks the device is asleep. For instance, ActiveSync when it syncs every 5 minutes. It’s waking up, syncing, and going back to sleep, but the user can’t tell. * Resuming: This is the state the PocketPC goes into when it wakes up from sleep. In this state, the screen is off, and there is a very short (15 second) timer before it goes back to sleep. The only way to keep the device from going back to sleep is to have something put it into one of the other states. This is really for dealing with spurious wakeups and for giving the system a way to get into Unattended without letting the user know about it. * Suspended: This is the PocketPC "Sleep" state. Everything is off, and the system isn’t going to wake back up until some piece of hardware wakes it up. It’s not actually an official Power Manager state, the way the other six are, but I’m including it for completeness. [Update] – BradA has a good link and an interesting stat. Industry forecasts predict that up to 67% of workforce computers will be mobile PCs. http://blogs.msdn.com/brada/archive/2005/08/21/PowerManagement.aspx

  4. Daniel Kamm says:

    Something I have wondered about: Does it make sense to have some communication between the OS and the graphics card that essentially leaves the user’s active window at 100% brightness, and then dims the background and any other open windows? For people that don’t maximize their application windows, it seems like being able to dim out some percentage of the screen would conserve battery life.