从能源效率的角度看编程语言:C语言最节能,Java最高效

一组葡萄牙研究人员做到了。他们研究了27种最流行的编程语言,以查看速度和效率之间是否存在关系。研究团队通过使用计算机基准测试,使用最先进的编译器、虚拟机、解释器和库来编译/执行程序测试这些编程语言。然后,他们分析了不同编程语言实现之间的性能,整个过程考虑了三个变量:执行时间,内存消耗和能耗。

很多人的电脑屏幕上都会有一个显示CPU占用率的小球(当然也可能是其他形状,很多人是在下载诸如360等安全软件中带的),很多人在看到数字彪红的时候会很受不了,想要马上清理内存。如今,节能不仅仅是硬件问题,编程语言的选择也可能会对能源消耗产生严重影响,本文我们将深入了解编程语言的能源效率。

多年来,我们将性能与处理时间结合在一起。“它有多好?”的意思是“它有多快?”,开发人员、工程师甚至消费者都会做很多工作,以避免CPU的重大耗尽,保护其电池,能源效率从硬件开始逐渐转化为软件开发。

当尝试衡量编程语言的效率时,会出现很多问题,比如,你使用什么来度量? 编写的程序更快,语言就更节能、更有效率吗? 更快的编程语言是更环保的吗?比较编程语言之间的效率是困难的。语言的性能可以通过其编译器或虚拟机的质量轻松改善,改进源代码与优化库一样重要。

但是,一组葡萄牙研究人员做到了。他们研究了27种最流行的编程语言,以查看速度和效率之间是否存在关系。研究团队通过使用计算机基准测试,使用最先进的编译器、虚拟机、解释器和库来编译/执行程序测试这些编程语言。然后,他们分析了不同编程语言实现之间的性能,整个过程考虑了三个变量:执行时间,内存消耗和能耗。

图1:从能源效率的角度看编程语言:C语言最节能,Java最高效

研究发现:速度并不等效于能源效率。比如C、C ++、Rust和Ada这样的编译语言被列为一些最节能的语言。Java是面向对象语言中速度最快,效率最高的语言之一。解释性编程语言,如Perl,Python和Ruby是最不节能的。研究人员发现,基于CPU的能源消耗总是占能源消耗的大部分。

平均来说,如果按照编程范例进行排序,命令式语言需要最少的内存,其次是面向对象、函数式,最后是脚本语言。

那么,是否可以综合能源消耗、时间和内存使用选择一种编程语言呢? 当然可以,C语言是所有领域的明显赢家。但如果你对C语言编程不感兴趣,那么有一些有趣的选择。

图2:从能源效率的角度看编程语言:C语言最节能,Java最高效

Go和Pascal在效率测试中做的相当差,但如果你只是考虑基于能源消耗和内存,他们会做得很好。对于有兴趣改善能源和内存的人,Rust和FORTRAN也是不错的选择。

测试代码真正的效率

研究人员在GitHub上贡献了一个项目(开源地址:https://github.com/greensoftwarelab/Energy-Languages),可以用来评估你的代码,看它是否高效,只需要三个简单的步骤:

  1. 创建一个名称为“基准”的文件夹,例如test-benchmark,在你实现的编程语言里面。
  2. 按照操作部分中的说明,填写Makefile。
  3. 使用compile_all.pyscript来编译,运行或测试你想要的内容!或者使用make命令运行它。

你怎么看这一项研究,会改变你对编程语言的选择吗?

阅读余下内容

发表评论

电子邮件地址不会被公开。 必填项已用*标注


京ICP备12002735号