减少能耗,拯救地球!多用C语言编程,避免使用Python、Perl

原文链接:Save the planet! Program in C, avoid Python, Perl 由Jean-Luc Aufranc撰写。
本文共计762字,预计阅读2分钟

作为一名前软件工程师,我主要使用C语言进行编程,偶尔也使用汇编语言。我深知这两种编程语言是最有效的,因为它们与硬件非常相近。

不过,为了回答用户们的一些疑问,葡萄牙大学的研究人员团队在 2017 年曾发表过一篇论文。这篇论文的名字叫做“不同程语言的能源效率,该论文试图量化不同编程语言(及其编译器/解释器)的能源效率,文章中还研究了27 种知名编程语言在运行时的内存使用情况和能耗。研究发现,C 语言是这里毫无争议的赢家,C语言的效率最高,Python与Perl的效率则垫底。

该研究讨论了方法论和各种基准测试。我们从编译代码开始看,我先选择二叉树结构(binary-trees,树形结构的一个重要类型)的结果来论证观点。

二叉树编译
二叉树编译

不出意料,该研究得出的结论正如预期那样:“编译型语言往往是最快和最节能的语言”。C 语言和 C++ 语言则是最高效和最快的语言。Go 是编译型语言类别中表现最差的语言,它甚至比依赖于VM的Java或Erlang之类的语言还要糟糕,至少在使用二叉树示例的情况下是这样。

二叉树虚拟机
二叉树虚拟机

但效率最低的语言是解释型语言,比如:Perl、Lua 或 Python,而且其结果与其他语言相比也是有一定差距的。

解释型语言相对低效
解释型语言相对低效

不过大家需要注意的是,所有测试都是在基于 Intel Core i5-4460 Haswell CPU @ 3.20GHz 、16GB RAM、且运行 Ubuntu Server 16.10 的操作系统和 Linux 4.8.0-22的台式机上进行的。考虑到 MicroPython 现在可以在各种微控制器上运行,我怀疑它在那些占用空间较小的平台上应该不会那么糟糕。而且,如果我们能找出它和其他语言的差异,可能还挺有趣的。

编程语言通过速度、内存使用、能耗的排序情况
编程语言通过速度、内存使用、能耗的排序情况

该研究还使用不同的目标组合对每种语言进行了排名,而且还混合了时间、内存和能耗进行了对比研究,结果表明 C 语言始终在这些指标中名列前茅。这其实已为大众所知很多年了,但是如果你想通过优化程序来降低功耗延长电池寿命,那么就必须在 C语言、汇编程序、SIMD 指令或加速器的自定义指令中优化某些例程。

本文消息来源于Hackaday

分享这篇文章
订阅评论
提醒
0 评论
内联反馈
查看所有评论