← 最新论文
💻 计算机科学

Measuring Code Level Determinants of Software Sustainability: A Systematic Literature Review

这项针对 137 项研究的系统性文献综述综合了软件可持续性的代码级决定因素和度量标准,揭示了碳测量与能源测量相比存在的显著研究空白,并提出了一个基于理论的研究决策框架和可操作的指南,以帮助开发者构建更绿色的软件。

原作者: Zoya Mahboob, Atif Jilani, Qurrat Ul Ain

发布于 2026-10-22
📖 1 分钟阅读☕ 轻松阅读

原作者: Zoya Mahboob, Atif Jilani, Qurrat Ul Ain

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

每当一个软件程序运行时,从智能手机上的应用程序到管理全球云服务的庞大系统,它都在从电网中抽取电力。这种消耗不仅仅是成本问题,更是导致气候变暖、产生碳排放的直接因素。虽然托管这些系统的数据中心因其能源需求而闻名,但软件本身——即开发者编写的代码行——在决定耗电量方面起着隐蔽但决定性的作用。正如汽车发动机的设计决定了其燃油效率一样,编写代码时的具体选择决定了一个程序运行所需的能量多少。有些选择是高效的,而有些选择则会在用户毫不知情的情况下浪费电力。

多年来,研究人员一直在研究如何让软件更加绿色,但证据散落在数以千计的论文中,且通常使用不同的方法来衡量相同的事物。由巴基斯坦国家计算机与新兴科学大学的研究人员发表的一项新的系统性综述,将这些碎片化的知识整合在一起。通过分析 237 篇发表于 2015 年底至 2026 年初之间的同行评审研究,该团队创建了一张清晰的图谱,准确展示了哪些编码决策对可持续性最为重要。他们发现,尽管该领域发展迅速,但在很大程度上侧重于测量能源消耗,而在测量由此产生的碳排放方面存在显著空白,即便目前的法规已开始要求进行碳核算。

研究人员首先通过一个结构化系统对大量的现有文献进行了分类。他们确定了两类主要信息:开发者所做的特定选择(称为决定因素)以及衡量这些选择的方法(称为影响指标)。决定因素的范围从宏观层面(如编程语言的选择或用于解决问题的算法)到微观层面(如如何在内存中存储数据或如何编写循环)。指标则是观察这些选择影响的工具,主要测量消耗了多少能量或完成一项任务需要多长时间。团队组织这些发现,以展示这些决策是在软件开发过程中的何时做出,以及其影响是在何时被观察到的。

其中一个最引人注目的发现是关于高层决策所能产生的巨大影响规模。该综述证实,编程语言的选择是一个主导因素。研究一致表明,编译型语言(直接翻译成机器码的语言)的能源效率可以比解释型语言(在运行时逐行处理的语言)高出多达 20 倍。同样,算法的选择(程序遵循的数学配方)也可以造成能源使用的巨大差异。一个更高效的算法可以将能源消耗降低几个数量级,这种差异之大,以至于任何细微的代码微调都无法与之相比。尽管如此,该综述指出,这些高影响力的决策并不是文献中研究最频繁的主题;研究人员花费了更多时间在研究像特定的编码风格或微小优化这类影响较小的细节上。

该研究还绘制了这些决策发生的时间图谱。绝大多数研究集中在实现阶段(即代码首次编写时)和运行阶段(即软件实际执行时)。然而,研究发现了一个关键的缺口:测试阶段。很少有研究考察测试过程或测试代码本身是如何导致能源浪费的。这是一个重大的疏忽,因为现代软件开发高度依赖自动化测试系统,这些系统每天运行数千次,消耗的能量可能比最终产品本身还要多。研究人员强调,这一领域仍处于未开发状态,这为未来的改进提供了巨大的机遇。

或许最紧迫的发现与测量对象有关。该综ска综述发现,137 项研究中有 131 项测量了能源消耗,通常使用专门的硬件计数器来追踪精确到焦耳的电量使用。相比之下,只有三项研究直接测量了碳排放。这种不平衡是存在问题的,因为全球监管正在日益转向从追踪能源转向追踪碳。研究人员指出,这个差距很容易弥补。由于碳排放是通过将能源使用量乘以当地电网的碳强度来计算的,因此如果研究人员仅仅记录下电源背景的信息,现有的丰富能源数据就可以转化为碳数据。目前,该领域拥有能源数据,但缺乏现代环境报告所需的碳背景。

为了帮助开发者应用这些发现,该团队创建了一个实用的决策框架。它作为一个故障排除可持续性问题的指南。如果一项软件服务运行成本过高,该框架建议在担心微小的代码微调之前,先检查编程语言和算法。如果一个移动应用正在消耗电池电量,它会指向已知会浪费电力的特定编码模式。这些准则强调,开发者应该直接测量能量,而不是根据程序运行的速度进行猜测,因为运行速度快的程序并不一定更高效。他们还建议为软件功能设定明确的能量预算,将能源浪费视为与软件漏洞(bug)同等严肃的问题。

综述总结道,可持续软件工程领域正在走向成熟,拥有一个不断发展的国际社区和既定的方法。然而,它呼吁进行一次重心转移。研究人员被敦促更深入地研究测试阶段,在语言选择等高影响决策上进行结果复现,并开始在能源数据旁报告碳排放。对于行业专业人士而言,信息非常明确:减少软件环境足迹最有效的方法不是通过细微的调整,而是通过在开发过程的最开始阶段做出根本性的选择。通过选择高效的语言、算法和数据结构,并准确测量结果,开发者可以显著减少数字世界的能源和碳成本。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →