一句话:提出软件能耗调试方法,定位并隔离能耗热点,案例揭示 Alpine 因 musl memcpy 实现比 Ubuntu 多耗能。
软件系统能耗日益重要,尤其在大规模部署中,但缺乏专用工具使能耗问题调试困难。本文提出一种能耗调试方法,用于识别并隔离软件系统中的能耗热点。作者以内存数据库 Redis 为案例,比较 Alpine 与 Ubuntu 发行版,发现某些操作下 Alpine 功耗最高高出 20.2%。进一步追踪到不同 C 标准库(musl 与 glibc)中 memcpy 的实现差异;通过隔离并基准测试 memcpy,确认它是能耗差异主因。结果凸显软件依赖能效的重要性,表明该方法能帮助开发者发现并处理能耗问题,推动可持续软件工程。
Energy consumption in software systems is becoming increasingly important, especially in large-scale deployments. However, debugging energy-related issues remains challenging due to the lack of specialized tools. This paper presents an energy debugging methodology for identifying and isolating energy consumption hotspots in software systems. We demonstrate the methodology's effectiveness through a case study of Redis, a popular in-memory database. Our analysis reveals significant energy consumption differences between Alpine and Ubuntu distributions, with Alpine consuming up to 20.2 % more power in certain operations. We trace this difference to the implementation of the memcpy function in different C standard libraries (musl vs. glibc). By isolating and benchmarking memcpy, we confirm it as the primary cause of the energy discrepancy. Our findings highlight the importance of considering energy efficiency in software dependencies and demonstrate the capability to assist developers in identifying and addressing energy-related issues. This work contributes to the growing field of sustainable software engineering by providing a systematic approach to energy debugging and using it to unveil unexpected energy behaviors in Alpine.
DOI 原文 ·
@inproceedings{paperbot8915,
title = {Unveiling the Energy Vampires: A Methodology for Debugging Software Energy Consumption},
author = {Enrique Barba Roque and Luis Cruz and Thomas Durieux},
booktitle = {ICSE},
year = {2025},
doi = {10.1109/icse55347.2025.00118}
}