Refactoring Java code can spike energy use unpredictably
New study finds 51.8% of Java refactorings change energy impact under load
A team of researchers from three universities — Haibo Wang, Heng Li, and Shin Hwei Tan — published a groundbreaking study on arXiv that challenges the assumption that software refactoring is inherently energy-neutral. The paper, titled *Understanding the Energy Impact of Software Refactoring: A Workload-Aware Study of Controlled Examples and Real-World Commits*, is the first large-scale empirical analysis of how refactoring affects energy consumption in Java software.
The study evaluated 68 refactoring types in a controlled micro-benchmark and analyzed 481 real-world refactoring commits from 430 GitHub projects. Results showed that 51.8% of refactoring-workload pairs in the micro-benchmark exhibited statistically significant energy differences, with 45.3% of instances changing energy-impact classification across workloads. In real-world scenarios, only 7.5% of commits showed significant energy changes, though two-thirds differed by at least 10%. The study concludes that refactoring type alone is insufficient to predict energy outcomes, and neither traditional metrics nor LLM-based predictors reliably identify energy regressions. This underscores the need for workload-diverse evaluation when assessing refactoring’s environmental impact.
- 51.8% of Java refactoring-workload combinations showed statistically significant energy changes in controlled tests (68 types, diverse workloads)
- Only 7.5% of 481 real-world refactoring commits had significant energy impact, but two-thirds varied by ≥10%
- Refactoring type alone cannot predict energy outcomes; workload diversity is critical for accurate assessment
Why It Matters
Developers and DevOps teams need workload-aware tools to avoid hidden energy costs in refactoring decisions.