提到编程语言,人们第一时间想到的无非是:哪个编程语言简单易学,抑或是最挣钱等。但是编程语言功耗问题却被很多人忽视。那么作为程序员的我们如何选择编程语言,使其以低能耗高功效地工作呢?
对于以上问题,葡萄牙大学的研究人员于年发表了一篇研究论文《EnergyEfficiencyacrossProgrammingLanguages》,对27种知名软件语言的运行速度、内存使用和能耗进行了研究,结果表明C语言依旧宝刀未老,凭借其精确的内存管理,轻量的设计模式,荣获“最环保”的编程语言的称号。
更快的语言并不总是最节能
据悉,研究人员基于ComputerLanguageBenchmarksGame标准对每种语言使用十个编程问题来进行调查,帮助研究人员获得更具有可比性、代表性和广泛性的程序,以及编译/执行选项和编译器版本。ComputerLanguageBenchmarksGameComputer是一个用于比较性能的免费软件项目,其中包含一组标准的算法问题和用于运行测试的框架。
此外,研究人员表示运行各种基准测试非常重要,因为它们的结果会由于所执行的测试而有所不同。即使在同一测试中,「最佳」语言也取决于测试者的标准是什么。
尽管人们普遍认为程序运行速度更快时能源消耗会随之降低,但论文中明确指出“更快的语言并不总是最节能的”,强调这并不像E(nergy)=T(ime)xP(ower)的物理定律那么简单。
比如在他们的一项基准测试中,Chapel程序的执行时间比用Pascal编写的等效程序少55%——但Pascal程序使用的能量少10%。
C语言最节能
在人们传统印象中,编译语言“往往”是最节能、运行速度最快的。对此研究人员用数字来量化这种差异,结果表明,编译语言仅需要花费焦耳能量来运行解决方案,而虚拟机和解释型语言要分别花费焦耳和焦耳。
而在比较执行时间时,研究者也采用了相同的精度,就平均而言,编译语言花费毫秒,虚拟机语言花费毫秒,解释型语言花费毫秒。除此之外,编译语言在内存占用方面,也稳居前5。
此外研究人员还根据编程语言的执行类型(编译、虚拟机或解释)和编程范式(命令式、函数式、面向对象和脚本)对结果进行了分析。
5种最慢的语言都是解释型语言:Lua、Python、Perl、Ruby和Type。5种能耗最多的语言也都是解释型语言:Perl、Python、Ruby、JRuby和Lua。。但在使用正则表达式操作字符串时,5种最节能的语言中有三种解释型语言,分别是TypeScript、JavaScript和PHP。
根据上图显示,如果基于能耗和执行时间两个基准来看,C语言是最佳的解决方案。如果用户想在节省内存的同时还能更快地执行,那么C语言、Pascal和Go语言是不错的选择。总的来说,如果用户只是想在使用更少内存的同时节省能源,那么最好的选择是C语言或Pascal。
最后研究人员总结道:“如果你正在寻找一种最好的编程语言,这个问题没有最终答案。尽管每个基准测试中最节能的语言几乎总是最快,没有哪一种语言是经久不衰,可以永远好过其他编程语言的。