作为一名前软件工程师,我主要使用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。

文章翻译者:Jacob,嵌入式系统测试工程师、RAK高级工程师,物联网行业多年工作经验,熟悉嵌入式开发、测试各个环节,对不同产品有自己专业的分析与评估。