Does the choice of programming language affect energy consumption? Previous highly visible studies have established associations between certain programming languages and energy consumption. A causal misinterpretation of this work has led academics and industry leaders to use or support certain languages based on their claimed impact on energy consumption. This paper tackles this causal question directly. It first corrects and improves the measurement methodology used by prior work. It then develops a detailed causal model capturing the complex relationship between programming language choice and energy consumption. This model identifies and incorporates several critical but previously overlooked factors that affect energy usage. These factors, such as distinguishing programming languages from their implementations, the impact of the application implementations themselves, the number of active cores, and memory activity, can significantly skew energy consumption measurements if not accounted for. We show -- via empirical experiments, improved methodology, and careful examination of anomalies -- that when these factors are controlled for, notable discrepancies in prior work vanish. Our analysis suggests that the choice of programming language implementation has no significant impact on energy consumption beyond execution time.
翻译:编程语言的选择是否影响能源消耗?先前备受关注的研究已确立了某些编程语言与能源消耗之间的关联。对此项工作的因果性误读导致学术界和产业界领袖基于所谓对能源消耗的影响而采用或支持特定语言。本文直接探讨这一因果问题。首先修正并改进了先前研究使用的测量方法。随后构建了一个详细的因果模型,以捕捉编程语言选择与能源消耗之间的复杂关系。该模型识别并纳入了多个关键但先前被忽视的影响能源使用的因素。这些因素——例如区分编程语言与其实现、应用程序实现本身的影响、活跃核心数以及内存活动——若未加考量,可能显著扭曲能源消耗的测量结果。我们通过实证实验、改进的方法论以及对异常值的仔细检验表明:当这些因素得到控制时,先前工作中显著的差异便会消失。我们的分析指出,在控制执行时间后,编程语言实现的选择对能源消耗并无显著影响。