Watts This Smell: A Comprehensive Taxonomy of Software Energy Smells
Summary
A new, comprehensive, and language-agnostic taxonomy of software energy smells has been developed to address inefficient computing resource use. Derived from a systematic literature review of 60 papers, it categorizes 320 inefficiency patterns into 12 primary energy smells and 65 root causes. Empirical validation involved profiling over 21,000 functionally equivalent Python code pairs for energy, time, and memory. The top 3,000 pairs were classified using a multi-step LLM pipeline (DeepSeek-V3.2), successfully mapping 55 of the 65 root causes to real code. Analysis revealed that 71% of samples exhibit multiple co-occurring smells, and memory-related smells offer the highest per-fix energy savings. Crucially, the study confirms that energy optimization cannot be reduced to performance optimization alone. The taxonomy and a labeled dataset of 21,428 code pairs are publicly released.
Key takeaway
For software engineers and AI teams focused on sustainable development or reducing operational costs, this taxonomy offers a critical framework. You should utilize its 12 energy smell categories and 65 root causes to precisely identify and refactor code inefficiencies, recognizing that energy optimization is distinct from mere performance tuning. Prioritize addressing memory-related smells, as they offer the highest energy savings. Consider integrating energy smell detection into your CI/CD pipelines to proactively safeguard against wasteful code.
Key insights
A comprehensive taxonomy of 12 energy smells and 65 root causes provides a distinct framework for energy optimization beyond performance.
Principles
- Energy optimization is distinct from performance optimization.
- Memory-related energy smells yield the highest per-fix savings.
- Most code inefficiencies involve multiple co-occurring energy smells.
Method
Systematic literature review and grounded theory coding derived 12 energy smell categories and 65 root causes, empirically validated via a multi-step LLM (DeepSeek-V3.2) pipeline on 3,000 Python code pairs.
In practice
- Integrate energy smell detection into CI/CD pipelines.
- Prioritize memory-related energy smell warnings in tooling.
- Train generative LLMs to synthesize energy-efficient code.
Topics
- Software Energy Efficiency
- Code Smells
- Green Software Engineering
- LLM Classification
- Code Refactoring
- Empirical Software Engineering
Code references
Best for: Machine Learning Engineer, NLP Engineer, Computer Vision Engineer, Software Engineer, Research Scientist, AI Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by cs.SE updates on arXiv.org.