Developers who aim to write energy-efficient software require both a new mindset and models and tools that can measure and reduce the software effect on hardware energy consumption. The authors' conceptual framework provides a unifying view of strategies, models, and tools.
IT energy consumption is an increasingly relevant concern. Traditionally, only hardware designers dealt with energy consumption. However, as hardware became more powerful, the influence of software behavior on energy consumption grew significantly.During the last few years, we have explored several facets of IT energy consumption from a software engineering perspective. What was once purely anecdotal evidence about the pivotal role of software on energy consumption is now supported by sound empirical data we collected through a series of experiments on different hardware platforms: servers, desktop PCs, and mobile phones. We analyzed the power consumption of three servers performing different tasks, and we observed that power consumption can increase up to 40 percent depending on the usage scenario. 1 We analyzed desktop computers from different technological generations in distinct software usage scenarios and found out that, depending on the software applications used, power consumption can increase up to 20 percent. 2 Finally, we profiled the power consumption of mobile devices, comparing two generations of Android OS-based smartphones. Our results show how different execution profiles of the same application can significantly affect the power consumption of a mobile device. 3 Although the actual figures vary depending on the specific hardware platform, the impact of software on energy consumption is definitely relevant. This implies a change of mindset for the software engineering community. First,