快速注册 找回密码

QQ登录

只需一步,快速开始

查看: 1080|回复: 0

哪种编程语言又快又省电?有人对比了27种语言

[复制链接]

该用户从未签到

升级  48.5%

送鲜花(2) 砸鸡蛋(1)
发表于 2021-2-23 23:17:42 | 显示全部楼层 |阅读模式
提示您:未得到智伍应用正式版的授权,部门功能受到影响!



尊重的用户,您好!!


非常感谢您能安装智伍应用旗下的产物,为了产物的可连续发展和升级,云收罗已经开始按天收费,发起购买200天,免费赠予400天,一共600天,均匀天天仅需1.67元。


向用户收费是为了给用户更可靠的保障和服务,所收取的费用重要用于产物的正常运作、不停研发和改进,盼望各位用户可以或许明白和支持。



购买正式版授权请打开下面的网址自助购买:
www.zhiwu55.com/authorization/buy_end_time.php?hzw_appid=B4592D53D254F99549C9FBF696104B22



购买之后,主动开通正式版授权,新收罗的内容不会再出现未购买授权的提示信息,同时智伍应用旗下全部含云收罗功能的产物,都无需再次购买云收罗的正式版授权,即云收罗的授权可以在智伍应用的各个产物那边通用!


假如您已经购买了正式版,照旧会出现未购买授权的提示,大概有别的题目,请接洽智伍应用官方在线客服QQ/微信:2085244671




选自thenewstack

作者:David Cassel

呆板之心编译

编辑:小舟、张倩

在手机快没电时,管理软件每每会提示我们关掉某些耗电量高的应用。可见,除了硬件厂商外,软件厂商也应该器重能耗题目。在这篇文章中,研究者分析了一下各种编程语言的能耗对比。
KGF8C9KWGVk39iC4.jpg

当能耗也成为了一个紧张指标,我们要怎么选择编程语言?2017 年,由 6 名葡萄牙研究者构成的团队决定对这一题目举行观察并发表了一篇名为《Energy Efficiency Across Programming Languages》的论文。他们用 27 种语言写出了 10 个题目的办理方案(遵照同样的算法),然后运行这些方案,记载每种编程语言斲丧的电量以及速率和内存利用环境,得到的排序效果如下图所示:
gqjJ83jTFjHq3jgY.jpg

通过这项研究,他们得出了一些故意思的结论,好比运行速率快的语言未必能耗小。

在论文中,作者还根据编程语言的实行范例(编译、假造机或表明)和编程范式(下令式、函数式、面向对象和脚本)对效果举行了分析。

详细而言,研究者利用了来自 Computer Language Benchmarks Game(一个用于比力性能的免费软件项目,此中包罗一组尺度的算法题目和用于运行测试的框架)的 10 个题目,使得研究更有可比性和代表性。

运行各种基准测试非常紧张,由于它们的效果会由于所实行的测试而有所差别。比方,总体而言,C 语言被以为是最快的,也是最节能的。但是在涉及扫描 DNA 数据库中特定基因序列的基准测试中,Rust 是最节能的,而 C 语言位居第三。

纵然在同一测试中,「最佳」语言也取决于你的尺度。好比在一个 C 排第二、Rust 排第一的测试中,假如按内存利用环境对效果举行排序,Rust 会跌掉 9 个位次。而在一个 Fortran 能效第二高的测试中,假如效果按照运行时间排序,它也降落了 6 个位次。

研究者指出,他们严酷服从 CLBG 项目关于编译器版本和最佳优化标记的引导方针。功耗的丈量利用一个来自英特尔的工具——Running Average Power Limit,每个步伐运行 10 遍。作者表现,「这是为了淘汰冷启动和缓存效应的影响,并可以或许分析丈量的同等性,制止非常值」。

为了加强同等性,全部测试都在一个运行 Linux Ubuntu Server 16.10(内核版本 4.8.0-22-generic)的台式机上运行。

运行速率快的语言更节能吗?

这篇论文认真地研究了一个广泛的假设:速率越快的步伐斲丧的能源就越少。研究者指出,实在,这并不像物理学定律 E(nergy) = T(ime) x P(ower) 那么简朴。这是由于电力并不按照肯定的速率举行斲丧。在其他研究者的一项研究中,一个 Chapel 步伐的运行时间比另一个用 Pascal 写的等价步伐少 55%,但丈量效果却表明,谁人 Pascal 步伐所用的能量反而要少 10%。

因此,只管广泛以为步伐运行速率更快时能耗会降落,但研究者明白指出「速率更快的语言并不总是更节能。」

这大概是一个很难答复的题目,由于功耗受到很多因素的影响(包罗编译器的质量和利用的库)。但终极,研究职员总结出,无论是编译型语言、表明型语言照旧假造机,实在大部门能量(均匀 88% 左右)是由 CPU 斲丧的。

在对实行效果分析研究之后,研究者还得出结论:DRAM 的峰值利用量与能耗之间「险些没有关系」。该研究为一个恒久存在的题目提供了答案:「速率更快就更环保吗?」是的,简直是如许,在按照实行时间举行排序时,前 5 种最节能的语言依然排在前 5 名,而且在能量和时间值方面的差距很小。

现实上,在 10 个基准题目测试中,有 9 个得分最高者(速率和能源服从两方面)是速率最快和能源服从最高的三种语言之一,这并没有让研究者感到惊奇。众所周知,就像研究中的数据所表现的一样,C、C++ 和 Rust 这三种排名最靠前的语言都颠末了大量优化,在实行性能上都比力高效。

但是按照运行时间对其他 24 种语言举行排名时,环境就不一样了。只有 4 种语言保持雷同的能耗和时间排名(OCaml、Haskel、Racket 和 Python),而别的语言则彻底散开。

纵然在单项基准测试中,也存在速率快但不节能的语言。

编译型语言的长处

编译型语言好像是最节能和运行最快的语言,作者乃至可以在论文中用数字量化这种差别。

均匀而言,编译语言必要耗费 120J 能量来运行办理方案,而假造机息争释型语言要分别耗费 576J 和 2365J。

在比力实行时间时,研究者也接纳了雷同的精度,得出的结论是:均匀而言,编译语言耗费 5103 毫秒,假造机语言耗费 20623 毫秒,表明型语言耗费 87614 毫秒。

两项排名中的前 4 名均为编译型语言(有一个破例,Java 语言)。
tONA5KnbBaIkM52B.jpg

5 种最慢的语言都是表明型语言:Lua、Python、Perl、Ruby 和 Typescript。5 种能耗最多的语言也都是表明型语言:Perl、Python、Ruby、JRuby 和 Lua。

但同时,在利用正则表达式操纵字符串时,5 种最节能的语言中有三种(TypeScript、JavaScript 和 PHP)是表明型语言。只管在其他环境下,它们每每不是很节能。

编译型语言在占用内存最少的排名中也占据了前 5 名。
etj25QMtjFz2nDmF.jpg

研究者称:「均匀而言,编译语言必要 125Mb,假造机语言必要 285Mb,而表明语言则必要 426Mb。」详细来说,有 4 种表明型语言在这项排名中垫底,这意味着它们斲丧了最多的内存空间。

「假如按照它们的编程范式举行排序,下令式语言必要 116Mb,面向对象语言必要 249Mb,函数式编程语言是 251Mb,脚本必要 421Mb。」

现实上,当比力差别范式时,下令式编程通常排在首位。与面向对象、函数式以及脚本范式的基准步伐相比,下令式编程的基准步伐均匀利用的能源少得多,运行速率也更快。
Nl16bd0lC1R40446.jpg

但是有许多因素必要思量。研究者称「很显然,差别的编程范式,乃至同一范式中的语言对能耗、时间、内存的影响也完全差别」。但是,此中哪一个因素最紧张取决于你本身的需求环境(比方,背景使命并不总是必要最快的运行时间)。

某些应用步伐必要同时思量两个因素,如能耗和实行时间。研究者称:「在如许的环境下,C 语言是最佳的办理方案,由于它在这两个方面都很有上风。」假如你想在节流内存的同时节流时间,那么 C 语言、Pascal 和 Go 语言都可以。假如你正在观察 3 个变量(时间、能耗和内存利用环境),那么结论也是一样的。但是,【*****智伍应用提示您:未购买正式版授权,功能受到影响!!请根据最上面的引导提示,自助购买正式版授权,主动开通!!在线客服微信:ccccyyyy4444,官方网站:zhiwu55.com*****】,那么最好的选择是 C 语言或 Pascal。
XRYXBR72ROjzE2jE.jpg

参考链接:

https://thenewstack.io/which-programming-languages-use-the-least-electricity/

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



© THE END

转载请接洽本公众号得到授权

投稿或寻求报道:content@jiqizhixin.com喜好此内容的人还喜好

原标题:《哪种编程语言又快又省电?有人对比了27种语言》

阅读原文
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

社区精彩导读

Powered by Discuz! X3.4 © 2006-2021 Comsenz Inc

本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与[小城社区]无关。 如有侵犯您版权的,请邮件与我们联系处理(邮箱:10000@546800.com),本站将立即改正。
快速回复 返回顶部 返回列表