Tool finds energy use changes in software updates quickly

Systematic Detection of Energy Regressions in Software Version Histories

Software Engineering

Summary

Software updates can sometimes make programs use more energy without the developers realizing it. The authors created a tool called EnergyTrackr that checks many versions of software to spot when energy use goes up or down significantly. They tested this tool on thousands of software updates and found that a fast checking method works nearly as well as a slower one but saves time and computing power. This can help developers fix software to make it more energy efficient over time.

What this means in practice

  • For software developers: Detect energy consumption increases in code updates to maintain efficient software.
  • For software quality teams: Integrate automated energy regression detection into continuous integration pipelines to save time and resources.

Authors

Jérôme Maquoi, François Bechet, Luís Cruz, Benoît Vanderose, Xavier Devroey

Abstract

Context: Green software engineering is emerging as a crucial response to the rising energy impact of information technology, especially in continuous development. However, challenges remain in devising automated methods to efficiently identify energy regressions across commits. In particular, little effort has been put into automatically detecting regressions at the commit level by identifying statistically significant changes in energy consumption. Objectives: This paper presents EnergyTrackr, an approach for detecting energy regressions across multiple commits. Methods: We empirically evaluated EnergyTrackr on 1,932 commits from five Java projects, assessing its ability to identify significant energy changes. We also compared a straightforward linear algorithm that analyzes the entire commit history with a more efficient dichotomous search algorithm. Results: The evaluation demonstrates the effectiveness of EnergyTrackr in identifying significant energy changes across commits. Our findings highlight the efficiency of the dichotomous algorithm in uncovering overall software energy trends, achieving results comparable to the linear approach while reducing resource consumption and processing time. Conclusion: We expect EnergyTrackr to help developers accurately monitor energy regressions and improvements in their projects and optimize their source code to reduce software energy consumption.