Microsoft to app developers: Time to think about power management

Summary:Both Intel and Microsoft have been knocking themselves out for years, seeking to develop better options for energy efficiency and power management at the hardware and operating system later. Now Microsoft is hoping to rally more application developers to the power management cause.

Both Intel and Microsoft have been knocking themselves out for years, seeking to develop better options for energy efficiency and power management at the hardware and operating system later. Now Microsoft is hoping to rally more application developers to the power management cause.

The need for third-party application developers to accommodate power management modes has become acute, according to Mark Aggar, Microsoft's director of environmental technology, who spoke about the topic this week during a presentation at the Intel Developer Forum.

"Applications have a funny little habit of undermining energy efficiency when you least expect it," Aggar said during a phone interview the day after his speech. Most IT professionals, however, are unaware of the role that applications play in power management agendas, he says.

For example: you wouldn't want your laptop display dimming when you're watching a video, right? But, ahem, I'll bet this might have happened to you when you were using one of the high-profile multimedia players.

The challenge is that very few applications actually were written to acknowledge or override system-level power management settings -- which make make for a case of what Microsoft describes as "PC insomnia." Or, the scenario when your computer should go to sleep, but it can't because of some application that is running. According to one of a series of white papers that Microsoft has prepared on the topic, applications need a tweak if they are going to interoperate well with system sleep or hibernation features. Here are three important factors for development:

  1. An application shouldn't prevent a system from going to sleep
  2. An application shouldn't crash when a computer is entering or exiting sleep mode
  3. An application should be smart enough to prevent the computer from sleeping during a passive activity (like watching a video)

According to Aggar, it is relatively simple to stop an application -- custom or commercial -- from undermining power management goals that are being sought at the system level. Microsoft has some APIs that allow developers to address this in a few lines of code. White papers on everything from the science of setting application timers to more sophisticated practices such as measuring idle power consumption can be found on the "Energy Smart" section of the Microsoft developer Web site.

To close, here are Aggar's top 10 ways to be "Energy Smart":

  1. Be resilient and respectful of sleep transitions
  2. Use system and display availability requests appropriately
  3. Support virtualization
  4. Measure system utilization when your application is idle
  5. Help the system stay idle
  6. Consider and adjust to the power environment
  7. Measure workload power efficiency
  8. Improve workload power efficiency
  9. Scale resource use intelligently
  10. Cloudburst the peak load

Hmm, I wonder what Microsoft's own applications team is doing to support this cause?

Topics: Microsoft, Software Development

About

Heather Clancy is an award-winning business journalist specializing in transformative technology and innovation. Her articles have appeared in Entrepreneur, Fortune Small Business, The International Herald Tribune and The New York Times. In a past corporate life, Heather was editor of Computer Reseller News. She started her journalism lif... Full Bio

zdnet_core.socialButton.googleLabel Contact Disclosure

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

Related Stories

The best of ZDNet, delivered

You have been successfully signed up. To sign up for more newsletters or to manage your account, visit the Newsletter Subscription Center.
Subscription failed.