CodeGreen: Towards Improving Precision and Portability in Software Energy Measurement
2026-03-18 • Software Engineering
Software Engineering
AI summaryⓘ
The authors created CodeGreen, a tool that measures how much energy software uses without slowing it down too much. It works by separating the part that checks hardware energy from the part that marks code sections, allowing flexible and accurate tracking. CodeGreen supports many programming languages automatically and lets developers focus on specific parts of their code. Tests show it matches real energy measurements very closely. This makes it easier to improve software energy use on different devices.
energy measurementsoftware profilinginstrumentationasynchronous producer-consumerhardware sensorsIntel RAPLTree-sitterAST queriescross-platformenergy optimization
Authors
Saurabhsingh Rajput, Tushar Sharma
Abstract
Accurate software energy measurement is critical for optimizing energy, yet existing profilers force a trade-off between measurement accuracy and overhead due to tight coupling with supported specific hardware or languages. We present CodeGreen, a modular energy measurement platform that decouples instrumentation from measurement via an asynchronous producer-consumer architecture. We implement a Native Energy Measurement Backend (NEMB) that polls hardware sensors (Intel RAPL, NVIDIA NVML, AMD ROCm) independently, while lightweight timestamp markers enable tunable granularity. CodeGreen leverages Tree-sitter AST queries for automated instrumentation across Python, C++, C, and Java, with straightforward extension to any Tree-sitter-supported grammar, enabling developers to target specific scopes (loops, methods, classes) without manual intervention. Validation against "Computer Language Benchmarks Game" demonstrates $R^2 = 0.9934$ correlation with RAPL ground truth and $R^2 = 0.9997$ energy-workload linearity. By bridging fine-grained measurement precision with cross-platform portability, CodeGreen enables practical algorithmic energy optimization across heterogeneous environments. Source code, video demonstration, and documentation for the tool are publicly available at: https://smart-dal.github.io/codegreen/.