作为一名前软件工程师,我主要使用C语言进行编程,偶尔也使用汇编语言。我深知这两种编程语言是最有效的,因为它们与硬件非常相近。
不过,为了回答用户们的一些疑问,葡萄牙大学的研究人员团队在 2017 年曾发表过一篇论文。这篇论文的名字叫做“不同程语言的能源效率”,该论文试图量化不同编程语言(及其编译器/解释器)的能源效率,文章中还研究了27 种知名编程语言在运行时的内存使用情况和能耗。研究发现,C 语言是这里毫无争议的赢家,C语言的效率最高,Python与Perl的效率则垫底。
该研究讨论了方法论和各种基准测试。我们从编译代码开始看,我先选择二叉树结构(binary-trees,树形结构的一个重要类型)的结果来论证观点。
![二叉树编译](https://cnx-software.cn/wp-content/uploads/2021/11/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%BC%96%E8%AF%91.jpg)
不出意料,该研究得出的结论正如预期那样:“编译型语言往往是最快和最节能的语言”。C 语言和 C++ 语言则是最高效和最快的语言。Go 是编译型语言类别中表现最差的语言,它甚至比依赖于VM的Java或Erlang之类的语言还要糟糕,至少在使用二叉树示例的情况下是这样。
![二叉树虚拟机](https://cnx-software.cn/wp-content/uploads/2021/11/%E4%BA%8C%E5%8F%89%E6%A0%91%E8%99%9A%E6%8B%9F%E6%9C%BA.jpg)
但效率最低的语言是解释型语言,比如:Perl、Lua 或 Python,而且其结果与其他语言相比也是有一定差距的。
![解释型语言相对低效](https://cnx-software.cn/wp-content/uploads/2021/11/%E8%A7%A3%E9%87%8A%E5%9E%8B%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%AF%B9%E4%BD%8E%E6%95%88.jpg)
不过大家需要注意的是,所有测试都是在基于 Intel Core i5-4460 Haswell CPU @ 3.20GHz 、16GB RAM、且运行 Ubuntu Server 16.10 的操作系统和 Linux 4.8.0-22的台式机上进行的。考虑到 MicroPython 现在可以在各种微控制器上运行,我怀疑它在那些占用空间较小的平台上应该不会那么糟糕。而且,如果我们能找出它和其他语言的差异,可能还挺有趣的。
![编程语言通过速度、内存使用、能耗的排序情况](https://cnx-software.cn/wp-content/uploads/2021/11/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E9%80%9A%E8%BF%87%E9%80%9F%E5%BA%A6%E3%80%81%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E3%80%81%E8%83%BD%E8%80%97%E7%9A%84%E6%8E%92%E5%BA%8F%E6%83%85%E5%86%B5-720x308.jpg)
该研究还使用不同的目标组合对每种语言进行了排名,而且还混合了时间、内存和能耗进行了对比研究,结果表明 C 语言始终在这些指标中名列前茅。这其实已为大众所知很多年了,但是如果你想通过优化程序来降低功耗延长电池寿命,那么就必须在 C语言、汇编程序、SIMD 指令或加速器的自定义指令中优化某些例程。
本文消息来源于Hackaday。
![](https://cnx-software.cn/wp-content/uploads/2021/05/45.jpg)
文章翻译者:Jacob,嵌入式系统测试工程师、RAK高级工程师,物联网行业多年工作经验,熟悉嵌入式开发、测试各个环节,对不同产品有自己专业的分析与评估。