Developing for power and performance on a Netbook

Netbooks have characteristics that can make them very desirable for certain workloads. Understanding the limits of the devices can help you focus your work in ways that will give you the best return for the time you spend optimizing. Here are a few points to consider when looking at power and performance issues.

Issue and Recommendation

High CPU Utilization: with Fixed Workloads

  • Optimize performance so that the task is finished sooner and the CPU can step to lower power states.


High CPU Utilization: with Steady-State workloads

  • Optimize performance to allow the CPU to run at lower frequency for the duration of the workload.


Heavy workloads (video playback for example)

  • Can feature quality be turned down? Consider using a lower resolution workload to match the output device.


Excessive use of Hard Drive

  • Reduce disk accesses by buffering data to let the drive spin down earlier and remain inactive longer.


Inefficient Spin-wait loops

  • Use subscription methods rather than polling which keeps the system unnecessarily busy device.


Unoptimized Media Playback

  • Utilize Hardware media acceleration where possible.

Additional considerations

Mobile users expect performance and demand longer battery life.

This is not just a hardware issue, we as application developers must be good power citizens.

At a minimum, applications should be aware of the battery/power status.

Application decisions effect power consumption on a platform level.

Reading a file for example, read it all into cache, let the drive spin down.

Avoid spin wait loops.

Plan for and handle system messages.

Handle Low power situations, what can you do to help?

Performance optimizations provide lower overall cpu utilization for increased battery life. Because the work can be done quicker, the cpu and other resources can go idle and be put to sleep sooner.

Tune for performance first, then battery life for best results.

Can feature quality be turned down? Ie: Play a lower resolution video to reduce necessary overhead.

Turn off background processing.

For more complete information about compiler optimizations, see our Optimization Notice.