当前位置:首页 > 公众号精选 > C语言与CPP编程
[导读]作者| JEAN-LUCAUFRANC译者|弯月出品|CSDN(ID:CSDNnews)提到编程语言,人们第一时间想到的无非是:哪个编程语言简单易学,亦或是最挣钱等。但是编程语言功耗问题却被很多人忽视。那么作为程序员的我们如何选择编程语言,使其以低能耗高功效地工作呢?2017年,...

作者 | JEAN-LUC AUFRANC
译者 | 弯月
出品 | CSDN(ID:CSDNnews)提到编程语言,人们第一时间想到的无非是:哪个编程语言简单易学,亦或是最挣钱等。但是编程语言功耗问题却被很多人忽视。那么作为程序员的我们如何选择编程语言,使其以低能耗高功效地工作呢?2017年,葡萄牙大学的研究人员团队曾发表过一篇题为《各种编程语言的能耗》的论文,他们比较了各个编程语言(及其编译器/解释器)的能耗,为此他们研究了 27 种知名编程语言的运行时、内存使用情况以及能耗。最后,C 成为了无可争议的赢家,其能耗最低,而 Python 和 Perl 则处于最末位。据悉,这项研究采用了多种方法论和多个基准测试。每种语言使用十个编程问题来进行调查,帮助研究人员获得更具有可比性、代表性和广泛性的程序,以及编译/执行选项和编译器版本。



C /C 能耗最低且最快



尽管人们普遍认为程序运行速度更快时能源消耗会随之降低,但论文中明确指出“更快的语言并不总是最节能的”,强调这并不像 E(nergy) = T(ime) x P(ower) 的物理定律那么简单。


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


在人们传统印象中,编译语言“往往”是最节能、运行速度最快的。首先我们来看一看编译语言在二叉树测试上的结果。




不出意料,这项研究得出的结论为:编译语言是最快和最节能的语言。C 和 C 语言是能耗最低且最快的语言。Go 是编译语言中表现最差的语言,甚至比依赖虚拟机的 Java 或 Erlang 等还要糟糕,至少在二叉树的测试中是这样。


Perl、Lua 和 Python能耗高
下面看一下解释型语言在速度与能耗方面的表现,由测试可知解释型语言才是能耗最高的语言,比如 Perl、Lua 和 Python。
而5 种最慢的语言也是解释型语言,如:Lua、Python、Perl、Ruby 和 Type。但在使用正则表达式操作字符串时,5 种最节能的语言中有三种解释型语言,分别是 TypeScript、JavaScript 和 PHP。


请注意,所有测试都是在如下环境运行:Intel Core i5-4460 Haswell CPU @ 3.20GHz,16GBRAM,Ubuntu Server 16.10 操作系统和Linux 4.8.0-22。考虑到如今 MicroPyhon 可以在各种微控制器上运行,猜它在体积更小的设备上的表现可能不会那么糟糕。此外,这项研究还根据时间、内存和能耗参数的不同目标组合,对每种语言进行了排名,而在这些指标中 C 语言始终名列前茅。这与人们长久以来的认知相同,如果你想优化程序,提高续航时间,降低功耗,则 C 语言绝对是最佳选择、汇编语言、SIMD 指令或加速器的自定义指令优化某些例程。参考链接:
  • https://www.cnx-software.com/2021/11/18/save-the-planet-program-in-c-avoid-python-perl/



-END-



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文转自公众号“CSDN”,ID:CSDNnews)作者 | Serdar Yegulalp 译者 | 王艳妮,责编 | 屠敏C语言五十年来一直是软件开发的一种主力语言。以下是它在如今的2019年与C,Java,C#,G...

关键字: 编程语言 PYTHON GO NET

“验证很多人都清楚,验证技术一直在发展,个人技术成长不进则退。于是采用最新的验证方法和趋势是很多验证牛人趋之若鹜的事情。一旦验证大佬尝试了某个事情,可能很快就会在团队传播起来,这就是偶像效应。这时候,这项技术仿佛就是经过...

关键字: BUG EDA VERILOG 编程语言

本文转自公众号“CSDN”,ID:CSDNnews)作者 | Serdar Yegulalp 译者 | 王艳妮,责编 | 屠敏C语言五十年来一直是软件开发的一种主力语言。以下是它在如今的2019年与C,Java,C#,G...

关键字: 编程语言

准备好与Arduino尝试不同的东西了吗?您不必局限于用C编程。将这些替代语言用于测试驱动器。

关键字: Arduino 编程语言

素材来源| CSDN,排版|嵌入式专栏C语言的发展有五十多年了,在所有高级编程语言中,C语言属于元老级别。在过去,TIOBE编程语言排行榜中,C语言只有被JAVA超越过,不过近两年,C语言稳稳的排名第一,在这9月的排行中...

关键字: C语言 编程语言

大家好,我是张巧龙,今天和大家聊聊一门新兴国产编程语言—Go,/*声明*/每个编程语言都有其优缺点,本文并未通过贬低其他编程语言来凸显Go的优势,相反,Go也有其缺点。01 什么是Go?Go(又称Golang)是Goog...

关键字: 编程语言

素材来源| CSDN,排版|嵌入式专栏C语言的发展有五十多年了,在所有高级编程语言中,C语言属于元老级别。在过去,TIOBE编程语言排行榜中,C语言只有被JAVA超越过,不过近两年,C语言稳稳的排名第一,在这9月的排行中...

关键字: C语言 编程语言

昨天(10月22日)下午,在华为开发者大会2021(Together)上,HarmonyOS3开发者预览版正式发布。同时,华为消费者业务软件部总裁龚体表示,在不久的将来,华为将发布为HarmonyOS全新研发的编程语言,...

关键字: 华为 编程语言 鸿蒙

据华为终端官微,在今天下午的HDC2021(华为开发者大会)上,华为透露将发布自研鸿蒙编程语言,为鸿蒙生态基础设施建设补上最后一环。预计这款编程语言将是HarmonyOS3的重要支撑,也将为未来鸿蒙生态的完善添砖加瓦。按...

关键字: 华为 编程语言 鸿蒙

C语言与CPP编程

252 篇文章

关注

发布文章

编辑精选

技术子站

关闭