Colloquium Computer Science - Fernando Castor, University of Utrecht
|When:||We 14-06-2023 16:00 - 17:00|
Title: Improving Energy Efficiency by Recommending Java Collections
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
Fernando Castor is a tenured Assistant Professor at the Department of Information and Computing Sciences, Utrecht University, The Netherlands, and an Associate Professor (on leave) at the Informatics Center of the Federal University of Pernambuco, Brazil. His broad research goal is to help developers build more efficient software systems more efficiently. More specifically, he conducts research in the areas of Software Maintenance, Software Energy Efficiency, and Code Understandability.