Microsoft's 10 Tips to Help Developers Play Nice with Sleeping PCs

PC power management is becoming ever more widely adopted by companies and computer manufacturers alike -- a good example is that in order to achieve an energy star rating for a computer, it must ship with its operating system's power management features switched on.

But as with all innovations, it takes some time to bring everyone up to speed. In the vast ecosystem of software developers, some companies are long since up to speed on making sure programs don't interfere with built-in or network-based power management solutions, but many more still have some catching up to do.

In addition to providing a handful of guidance documents for developers, Microsoft's Director of Environmental Technology spoke at the Intel Developer Forum in San Francisco this week to help developers help their users save energy.

"This was a call for [users] to start taking the issue seriously, like they have with reliability and security in the past," Mark Aggar explained in an interview. "Developers have not played an active role in ensuring that their applications allow systems to run efficiently. It's all too easy for systems to undermine power management, or contribute to a poor user experience when they're trying to use power management."

Aggar gave the example of an early bug that arose in the development of Windows 7: Adobe's Flash player was failing to close the audio channel, even if users were not listening to any music or playing any videos. That simple bug kept the PC from going to sleep, wasting energy and money in the process.

With more and more companies seeing the easy benefits to embracing PC power management -- among them reduced costs, energy savings, reducing load on data centers and power grids -- it's becoming more important for developers to make sure their programs play nice with power management policies.

Windows 7 includes tools that let IT professionals see if an application is not cooperating with the sleep cycle, and Aggar said that programs that inadvertently keep PCs awake are likely to face repercussions.

"If organizations go to the effort to use less power, then they're going to care if applications they install are undermining efficiency on the machines," he said. "We'd say that over time organizations are going to care a lot more about this issue, and you as a developer don't want to find out that your application isn't being deployed because it doesn't work well with power management."

To help developers get up to speed on what Microsoft calls "Energy Smart" software development, Aggar outlined his top 10 list for developers at the Forum yesterday:

  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

There are a number of similar guidance documents on the Microsoft Developers Network page for Windows Power Management. And you can read GreenBiz.com's list of 10 things to know about PC power management and much more in our energy efficiency section.

Source: greenbiz.com