Search papers, labs, and topics across Lattice.
This paper investigates the impact of software stack upgrades (Spring Boot and JVM versions) on application energy consumption using automated benchmarking. They found significant energy variations across different versions, including unexpected regressions in some cases. Notably, newer JVM releases and virtual threads led to substantial energy savings, highlighting the importance of energy-aware decision-making in software maintenance.
Newer JVMs with virtual threads can slash application energy consumption without code changes, but blindly upgrading your stack could also *increase* energy use.
Software stack upgrades are a routine part of software maintenance and evolution, typically motivated by improved performance, stability, or functionality. Yet their impact on energy consumption - a growing concern for organizations pursuing sustainability - remains poorly understood. This paper presents a systematic method for measuring how different versions of core software stack components, such as Spring Boot and the Java Virtual Machine (JVM), influence the energy consumption of applications. Our approach evaluates combinations of framework versions, runtime versions, and execution platforms through automated benchmarking. Using a case study based on the Spring Petclinic REST application, we show that energy consumption varies substantially across Spring Boot and JVM versions, in some cases producing unexpected regressions. Notably, newer JVM releases and virtual threads (introduced in Java 21 and 23) yielded significant energy savings without requiring application changes. These results demonstrate that software upgrades can meaningfully affect energy usage and that measuring energy consumption provides valuable evidence for decision making in software maintenance and evolution.