Abstract
In this chapter, we advocate that developers should leverage software diversity to make software systems more energy efficient. Our main goal is to show that non-specialists can build software that consumes less energy by alternating at development time between readily available, diversely designed pieces of software implemented by third parties. By revisiting the main findings of research work we conducted in the past few years, we noticed that they share a common observation: small changes can make a big difference in terms of energy consumption. These changes can usually be implemented by very simple modifications, sometimes amounting to a single line of code. Based on experimental results, one small change that could make a big difference is to replace most of the uses of a Hashtable class with uses of the ConcurrentHashMap class. In most of the cases, it was only necessary to modify the line where the Hashtable object was created. This simple reengineering effort promoted a reduction of up to 17.8% in the energy consumption of Xalan and up to 9.32% for Tomcat, when using the workloads of the DaCapo benchmark suite. Conclusions: The main insight we draw is that small changes can make a big contribution to reducing energy consumption, especially in mobile devices. We have also witnessed in practice that the huge variability of devices in the market and the vast number of factors influencing energy consumption is a real problem when experimenting with energy consumption. To try to minimize this problem, we finally present an initiative that aims to collect real-world usage information about thousands of mobile devices and make it publicly available to researchers and companies interested in energy efficiency.
Original language | English (US) |
---|---|
Title of host publication | Software Sustainability |
Publisher | Springer International Publishing |
Pages | 123-152 |
Number of pages | 30 |
ISBN (Electronic) | 9783030699703 |
ISBN (Print) | 9783030699697 |
DOIs | |
State | Published - Oct 5 2021 |
ASJC Scopus subject areas
- General Computer Science
- General Economics, Econometrics and Finance
- General Business, Management and Accounting
- General Environmental Science