Improving Energy Efficiency by Recommending Java Collections
Fernando Castor
Date: 16:00 – 16:30, Thursday, 16.12.2021
Location: MS Teams ICS Colloquium
Title: Improving Energy Efficiency by Recommending Java Collections
Abstract: In this work, we explore our vision that software developers who are not specialists in energy efficiency can build software that consumes less energy by alternating diversely-designed pieces of software without increasing the development complexity. We propose an approach for energy-aware development that combines the construction of application-independent energy profiles of Java collections and static analysis to produce an estimate of in which ways and how intensively a system employs these collections. We implement this approach in a tool named CT+ that works with both desktop and mobile Java systems and is capable of analyzing 39 different collection implementations of lists, maps, and sets. We applied CT+ to seventeen software systems: two mobile-based, twelve desktop-based, and three that can run in both environments. Our evaluation infrastructure involved a high-end server, two notebooks, three smartphones, and a tablet. Overall, 2295 recommendations were applied, achieving up to 16.34% reduction in energy consumption, usually changing a single line of code per recommendation. Even for a real-world, mature system such as Tomcat, CT+ could achieve a 4.12% reduction in energy consumption with very little extra work for programmers. Our results indicate that some widely used collections, e.g., HashMap and Hashtable, are not energy-efficient and should usually be avoided when energy consumption is a major concern.