Software Engineering
New taxonomy maps 65 root causes of software energy waste to tackle computing's environmental toll
Researchers have cataloged 12 primary energy smells and their underlying causes, validated against over 21,000 real code pairs to guide greener software development.
Software's environmental impact is increasingly difficult to ignore as computing spreads across industries and devices. A new comprehensive study offers developers a practical framework for identifying and fixing the inefficient coding patterns and design decisions that waste energy.
A shared language for energy efficiency#
Researchers have created the first language-agnostic taxonomy of software energy smells—source code patterns, architectural choices, and programming practices that squander computing resources. The work synthesizes insights from 60 academic papers and identifies 12 primary categories of energy waste, each with specific root causes. By establishing a common vocabulary, the taxonomy enables developers and researchers to discuss energy inefficiency in standardized terms.
Validation through large-scale code profiling#
The team validated their taxonomy empirically by analyzing over 21,000 functionally equivalent Python code pairs, measuring their energy consumption, execution time, and memory usage. They then classified the top 3,000 pairs—those showing the largest energy differences—using an AI-assisted pipeline, successfully mapping 55 of the 65 identified root causes to real-world code examples. This grounding in actual measured data distinguishes the work from prior, largely theoretical catalogs.
Key findings on energy waste#
The analysis uncovered several important insights. Three-quarters of code samples exhibited multiple overlapping energy smells, suggesting that energy problems often compound. Notably, memory-related smells produced the biggest energy savings when fixed, while variations in power consumption across different patterns demonstrated that energy optimization cannot be simply reduced to performance optimization—efficiency gains in one dimension don't automatically translate to lower energy use.
Practical impact for green software#
The researchers have released both their taxonomy and a labeled dataset of profiled code samples, providing a foundation for automated energy smell detection and energy-conscious code generation. This shared resource aims to accelerate the shift toward sustainable software engineering practices across the industry.