哪种编程语言又快又省电?有人对比了27种语言虚拟机编译器编译型

当能耗也成为了一个重要指标,我们要怎么选择编程语言?2017年,由6名葡萄牙研究者组成的团队决定对这一问题进行调查并发表了一篇名为《EnergyEfficiencyAcrossProgrammingLanguages》的论文。他们用27种语言写出了10个问题的解决方案(遵循同样的算法),然后运行这些方案,记录每种编程语言消耗的电量以及速度和内存使用情况,得到的排序结果如下图所示:

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

在论文中,作者还根据编程语言的执行类型(编译、虚拟机或解释)和编程范式(命令式、函数式、面向对象和脚本)对结果进行了分析。

具体而言,研究者使用了来自ComputerLanguageBenchmarksGame(一个用于比较性能的免费软件项目,其中包含一组标准的算法问题和用于运行测试的框架)的10个问题,使得研究更有可比性和代表性。

运行各种基准测试非常重要,因为它们的结果会由于所执行的测试而有所不同。例如,总体而言,C语言被认为是最快的,也是最节能的。但是在涉及扫描DNA数据库中特定基因序列的基准测试中,Rust是最节能的,而C语言位居第三。

研究者指出,他们严格遵守CLBG项目关于编译器版本和最佳优化标志的指导方针。功耗的测量使用一个来自英特尔的工具——RunningAveragePowerLimit,每个程序运行10遍。作者表示,「这是为了减少冷启动和缓存效应的影响,并能够分析测量的一致性,避免异常值」。

为了增强一致性,所有测试都在一个运行LinuxUbuntuServer16.10(内核版本4.8.0-22-generic)的台式机上运行。

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

因此,尽管普遍认为程序运行速度更快时能耗会下降,但研究者明确指出「速度更快的语言并不总是更节能。」

这可能是一个很难回答的问题,因为功耗受到许多因素的影响(包括编译器的质量和使用的库)。但最终,研究人员总结出,无论是编译型语言、解释型语言还是虚拟机,其实大部分能量(平均88%左右)是由CPU消耗的。

实际上,在10个基准问题测试中,有9个得分最高者(速度和能源效率两方面)是速度最快和能源效率最高的三种语言之一,这并没有让研究者感到惊讶。众所周知,就像研究中的数据所显示的一样,C、C++和Rust这三种排名最靠前的语言都经过了大量优化,在执行性能上都比较高效。

即使在单项基准测试中,也存在速度快但不节能的语言。

编译型语言的优点

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

平均而言,编译语言需要花费120J能量来运行解决方案,而虚拟机和解释型语言要分别花费576J和2365J。

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

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

但同时,在使用正则表达式操作字符串时,5种最节能的语言中有三种(TypeScript、JavaScript和PHP)是解释型语言。尽管在其他情况下,它们往往不是很节能。

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

研究者称:「平均而言,编译语言需要125Mb,虚拟机语言需要285Mb,而解释语言则需要426Mb。」具体来说,有4种解释型语言在这项排名中垫底,这意味着它们消耗了最多的内存空间。

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

实际上,当比较不同范式时,命令式编程通常排在首位。与面向对象、函数式以及脚本范式的基准程序相比,命令式编程的基准程序平均使用的能源少得多,运行速度也更快。

THE END
1.机器人热门编程语言及优缺点分析思岚科技这个问题困扰了很多新手学者,但遗憾的是,这是一个没有准确答案的问题,你问不同的人会得到不同的答案,对于机器人学者来说建立“编程思维“才是最关键的,而不是用一种特定语言去衡量,在很多方面,学习哪种机器人编程语言并不是最重要的,重要的是通过编程思维来不断提升自己的技能。https://www.slamtec.com/cn/News/Detail/169
2.十大编程语言优缺点对比老男孩python的技术博客python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路,以下是Python与其他编程语言的优缺点对比: 1. Python 优势:简单易学,能够把用其他语言制作的各种模块很轻松地联结在一起。 劣势:速度较慢,且有一些特定情况下才会出现(无法重现)的 bug https://blog.51cto.com/u_12306609/2116209
3.学编程学哪一种比较好?学习编程有很多种不同的语言和领域可以选择,每种语言和领域都有其特点和适用场景。因此,选择哪种编程语言比较好取决于你的目标、兴趣和个人情况。以下是一些常见的编程语言和它们的应用领域,供你参考:1. Python:Python是一种简单易学、功能强大的编程语言,适用于各种应用领域,包括数据分析、人工智能、Web开发等https://baijiahao.baidu.com/s?id=1783519401978028857&wfr=spider&for=pc
4.盘点时下最流行的十大编程语言优缺点,附2024年5月最新的编程语言排行TIOBE公布了2024年5月最新的编程语言排行榜,本次的亮点是Fortran这个编程界的元老级语言,竟然在沉寂20多年后,再次闯入榜单的Top 10。前10名分别是Python、C、C++、Java、C#、JavaScript、Visual Basic、Go、SQL、Fortran。前20名榜单如下: 下面分别来分析一下前十名编程语言的优缺点,看看哪种语言更适合你。 https://blog.csdn.net/Vista7Malone/article/details/139095834
5.从大模型的「前世今生」看生成式人工智能的「价值涌现」Jurassic-1是AI21 Labs发布的一个1780亿参数量自回归语言模型,作为第一个使用包含多词汇(multi-word)token的语言模型,Jurassic-1相比GPT-3能够使用更少的token来表示同一个语句,提高了模型效率,且在语料库测试中表现优于GPT-3。 15)Gopher Gopher是DeepMind公司发布的2800亿参数量大语言模型[5],其以自回归Transforhttp://www.pinevc.com.cn/article/1361.html
6.编程语言类型和优缺点是什么?Worktile社区编程语言类型和优缺点是什么 回复 共3条回复我来回复 这个人很懒,什么都没有留下~ 评论 编程语言是用于编写计算机程序的一种形式化语言。根据不同的目的和应用场景,编程语言可以分为多种类型,每种类型都有其独特的优点和缺点。 一、低级语言 机器语言:直接使用二进制代码编写,能够直接与硬件交互,执行效率高,但https://worktile.com/kb/ask/2421011.html
7.编程语言的种类和优缺点辉辉辉辉a编程语言的种类和优缺点 1.机器语言 优点:最底层,运行速度快。 缺点:很复杂,开发效率低。 2.汇编语言 优点:最底层,运行速度快。 缺点:很复杂,开发效率低。 3.高级语言 (1)解释型语言: 优点:跨平台,开发效率高。 缺点:依赖环境运行,运行效率低。https://www.cnblogs.com/huizaia/p/8892463.html
8.分享cjavapython三种语言的区别以及优缺点Java语言: 跨平台性和面向对象特性使得Java适用于企业级应用开发,但相对较慢的性能是一个缺点。Python语言: 适用于快速开发、数据科学和人工智能等领域,但在性能上有一些牺牲。 选择编程语言应根据项目需求、开发人员技能和应用场景来权衡各语言的优缺点。每种语言都有自己的定位和优势,合适的语言选择可以提高开发效率https://leetcode.cn/circle/discuss/oFCjec/
9.简述计算机程序设计语言(机器语言汇编语言高级语言)的优缺点机器语言:1.优点:计算机能够直接识别,不用转换.缺点:编程很很复杂,一个字,难.相当于你要用(01)两个数字完成所有的程序编译.汇编语言:优点:编程比机器语言简单的多,但要转换后计算机才能识别.学习起来也不是很难.高级语言:优点:编程简单(比汇编还要简单,灵活),但要转换后计算机才能识别,学习起来较难. 解析看不https://www.zybang.com/question/51b4901304f68ee2b00d8066397b0384.html
10.十大热门编程语言排名编程语言排行榜编程语言哪个前景好Assembly language(汇编语言)是全球十大编程语言之一,是用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,是机器语言之上的第二代编程语言,优缺点兼具。Assembly language能够轻松读取存储器状态以及I/O接口情况,可以准确高效的被执行,具有很强的扩展性。它也具有代码冗长、编写困难、容易出BUG而且比较难调https://www.maigoo.com/citiao/list_118062.html
11.适合人工智能的九大编程语言如今有100多种算法,每种算法都有自己的语言,也各有优缺点。例如,只有少数优秀的深度学习平台可用,但有几十种决策树算法或启发式算法。 2.哪个更好——Python或R编程语言? 回答:R和Python是人工智能、机器学习和数据分析的标准编程语言。如果从人工智能和机器学习开始,用户很可能会采用这两种语言,并且必须选择一种语https://nic.hnuu.edu.cn/10043/2021/0024668.html
12.pascal编程语言有哪些优缺点问答Pascal编程语言的优点包括:1. 结构化:Pascal是一种结构化的编程语言,它强制程序员使用块结构、过程和函数,使程序的逻辑更清晰,易于理解和维护。2. 可移植性:Pascal编程语言具有很高的https://www.yisu.com/ask/64366899.html
13.现代编程语言终极测评:一星篇编者按:编程语言哪种好?这可能是许多学习编程人员甚至是外行人员都会面对的头疼问题。网络上普遍的编程语言介绍,大多都是东拼西凑的内容,并且无法让人真正认识和了解各种语言的优缺点。这篇文章,原标题是These Modern Programming Languages Will Make You Suffer,作者Ilya Suzdalnitski在文章中针对15种编程语言展开了详https://36kr.com/p/1019313908663049
14.选Python还是选Java?2020年,顶尖程序员最应该掌握的7种编程语言哪种编程语言最好?这个问题可能永远不会有答案。萝卜白菜,各有所爱,AI 工程师和科学家可以根据项目需要,从众多编程语言中选择最适合自己的。 有人曾经将编程比作做菜,那编程语言就是首先要准备的食材或厨具。 C:一把菜刀一口炒锅,一个很好用的灶,隔壁有个菜市场。 https://www.thepaper.cn/newsDetail_forward_6854020
15.各大编程语言优缺点对比2.跨平台是它最大的优点也是最大的缺点 3.复杂性(做一个项目需要很多的知识,涉及面广) C# C#是一种精确、简单、类型安全、面向对象的语言。 说到C#,就不得不先简单介绍一下.net。到底什么是.net呢,按照微软总裁兼首席执行官Steve Ballrner把它定义为:.Net代表一个集合,一个环境,它可以作为平台支持下一代https://zhuanlan.zhihu.com/p/135201642
16.苹果端开发语言Swift和Objective苹果端开发主要使用的两种编程语言是Swift和Objective-C。它们各自有一些优点和缺点,具体选择取决于项目的需求、开发团队的经验以及个人喜好等因素。 apple-system, "background-color:#F7F7F8;">Objective-C: apple-system, "background-color:#F7F7F8;">优点: http://www.apppark.cn/t-49210.html
17.python编程语言对比C++语言的优势与劣势2.支持多种编程范式:Python编程语言能够支持多种编程范式,如 面向对象、函数式编程和过程式编程等。 3.强大的标准库:Python编程语言中有大量的标准库,遍布各个领域,例如 Web 开发、科学计算、图形图像处理等等。这些库在大多数情况下不需要额外的安装和配置,可以直接使用。 https://www.bwie.com/jsgh/8.html