C 语言是“最环保”的编程语言

提到编程语言,人们第一时间想到的无非是:哪个编程语言简单易学,亦或是最挣钱等。但是编程语言功耗问题却被很多人忽视,那么作为程序员的我们应该如何选择编程语言,使其以低能耗高功效地工作呢?

对于以上问题,葡萄牙大学的研究人员于2017年发表了一篇研究论文《Energy Efficiency across Programming Languages》,对 27 种知名软件语言的运行速度、内存使用和能耗进行了研究,得到的以下结果:总体而言C 语言被证明是最快的,也是最节能的。

C 语言是“最环保”的编程语言_第1张图片

更快的语言并不总是最节能

据悉,研究人员使用了来自 Computer Language Benchmarks Game(一个用于比较性能的免费软件项目,其中包含一组标准的算法问题和用于运行测试的框架)的 10 个问题,帮助研究人员获得更具有可比性、代表性和广泛性的程序,以及编译/执行选项和编译器版本。

此外,研究人员认为运行各种基准测试非常重要,因为它们的结果会由于所执行的测试而有所不同。即使在同一测试中,「最佳」语言也取决于测试者的标准是什么。

尽管人们普遍认为程序运行速度更快时能源消耗会降低,这里研究人员明确指出“更快的语言并不总是最节能的”。即更快的程序总是使用更少的能量,并指出这并不像 E(nergy) = T(ime) x P(ower) 的物理定律那么简单。

比如他们在一项基准测试中,Chapel 程序的执行时间比用 Pascal 编写的等效程序少 55%——但 Pascal 程序使用的能量少 10%。

然而在按照执行时间进行排序时,前 5 种最节能的语言依然排在前 5 名,而且在能量和时间值方面的差距很小。此外在 10 个基准问题测试中,有 9 个得分最高者(速度和能源效率两方面)是速度最快和能源效率最高的三种语言之一。

再按照运行时间对其他 24 种语言进行排名时,情况就不一样了。只有 4 种语言保持相同的能耗和时间排名(OCaml、Haskel、Racket 和 Python),而其余语言则彻底散开。即使在单项基准测试中,也存在速度快但不节能的语言。

编译语言力压其他语言

在人们传统印象像中,编译语言“往往”是最节能、运行速度最快的。对此研究人员用数字来量化这种差异,结果表明,编译语言仅需要花费 120J 能量来运行解决方案,而虚拟机和解释型语言要分别花费 576J 和 2365J。

而在比较执行时间时,研究者也采用了相同的精度,得出的结论是:平均而言,编译语言花费 5103 毫秒,虚拟机语言花费 20623 毫秒,解释型语言花费 87614 毫秒。除此之外,编译型语言在占用内存最少的排名中也占据了前 5 名。

C 语言是“最环保”的编程语言_第2张图片

此外研究人员还根据编程语言的执行类型(编译、虚拟机或解释)和编程范式(命令式、函数式、面向对象和脚本)对结果进行了分析。

发现 5 种运行最慢、能耗最多的语言都是解释型语言。但在使用正则表达式操作字符串时,5 种最节能的语言中有三种解释型语言,分别是 TypeScript、JavaScript 和 PHP。

C 语言是“最环保”的编程语言_第3张图片

根据上图显示,如果需要同时能耗和执行时间两个因素, C 语言是最佳的解决方案。如果用户想在节省内存的同时节省时间,那么 C 语言、Pascal 和 Go 语言都可以。

总的来说,如果用户只是想在使用更少内存的同时节省能源,那么最好的选择是 C 语言或 Pascal,即 C 语言可称为“最环保”的编程语言。

最后研究人员总结道:“如果你正在寻找一种最好的编程语言,这个问题没有最终答案。尽管每个基准测试中最节能的语言几乎总是最快的,但事实是,没有一种语言始终比其他语言更好。”

参考链接:

  • https://thenewstack.io/which-programming-languages-use-the-least-electricity/
  • https://hackaday.com/2021/11/18/c-is-the-greenest-programming-language/

论文链接:

  • https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf?utm_source=thenewstack&utm_medium=website&utm_campaign=platform

你可能感兴趣的:(程序员专区,microsoft,系统,软件)