Loading…
Empirical evaluation of two best practices for energy-efficient software development
•We empirically studied the energy impact of two best practices for energy-efficient software.•We applied the practices on two widely used software applications, MySQL Server and Apache Webserver.•Each practice successfully reduced the energy consumption of our test environment.•The hardware resourc...
Saved in:
Published in: | The Journal of systems and software 2016-07, Vol.117, p.185-198 |
---|---|
Main Authors: | , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Summary: | •We empirically studied the energy impact of two best practices for energy-efficient software.•We applied the practices on two widely used software applications, MySQL Server and Apache Webserver.•Each practice successfully reduced the energy consumption of our test environment.•The hardware resource usage of the modified applications is more energy-proportional.•Software design and implementation choices significantly affect energy efficiency.
Background. Energy efficiency is an increasingly important property of software. A large number of empirical studies have been conducted on the topic. However, current state-of-the-Art does not provide empirically-validated guidelines for developing energy-efficient software.
Aim. This study aims at assessing the impact, in terms of energy savings, of best practices for achieving software energy efficiency, elicited from previous work. By doing so, it identifies which resources are affected by the practices and the possible trade-offs with energy consumption.
Method. We performed an empirical experiment in a controlled environment, where we applied two different Green Software practices to two software applications, namely query optimization in MySQL Server and usage of “sleep” instruction in the Apache web server. We then performed a comparison of the energy consumption at system-level and at resource-level, before and after applying the practice.
Results. Our results show that both practices are effective in improving software energy efficiency, reducing consumption up to 25%. We observe that after applying the practices, resource usage is more energy-proportional i.e., increasing CPU usage increases energy consumption in an almost linear way. We also provide our reflections on empirical experimentation in software energy efficiency.
Conclusions. Our contribution shows that significant improvements in software energy efficiency can be gained by applying best practices during design and development. Future work will be devoted to further validate best practices, and to improve their reusability. |
---|---|
ISSN: | 0164-1212 1873-1228 |
DOI: | 10.1016/j.jss.2016.02.035 |