代码重构对能源消耗影响的详细评估
1. 引言
在过去十年中,软件能源消耗在研究和工业领域都变得极为重要。许多研究者和从业者开始关注软件的能源效率,尤其是在移动和云环境中,软件系统需要尽量减少资源消耗以降低电池消耗和运营成本。
源代码重构是一种著名且常用的软件开发技术,它通过应用公认的规则来改进软件系统的清晰度、可维护性等方面,同时不影响其功能行为。不过,代码重构也被视为一种在一定程度上自动提高性能和能源效率的手段。然而,以往研究大多基于预定义的重构规则、设计模式或代码异味来研究其对能源消耗的影响,存在一定局限性。
本文采用了一种不同的方法,从成熟的开源项目中提取代码重构历史,并测量包含公认代码重构的提交对整体能源消耗的影响,旨在回答以下研究问题:
- RQ 1:结构代码重构如何影响软件能源消耗的演变?
- RQ 2:软件的能源消耗随时间如何变化?
2. 实验协议
2.1 硬件环境
实验使用了一台 Core i7 机器(i7 - 6600U CPU @ 2.60 GHz),共有 4 个处理单元,安装了 18.04.4 LTS Ubuntu 系统和 4.15.0 - 88 - generic Linux 内核。大部分 Java 实验使用 OPENJDK 1.8.0_242 版本,OkHttp 项目使用 OPENJDK 11.0.6 版本。执行环境按照相关指南进行配置,以减少能源消耗的波动,确保测量的准确性。
2.2 研究项目
研究选择了具有良好提交历史、存在多年且有活跃社区的知名 Java 项目,涵盖了 JSON 和 XML 转换、HTTP 客户端、图处