从能源效率来看:Python比C++慢了57倍

科技太和君 2024-08-10 01:18:43

众所周知,编程语言的“快”体现在编译和执行效率。但是哪种编程语言又快又节能?这是个有趣的问题,因为通常开发者并不会考虑编程语言的“节能”问题。然而,在开发者世界中,还真的有专业机构和人群对这样的问题做过研究。

2017年,计算机协会ACM SIGPLAN工程语言学术会议上发表了一篇论文《跨编程语言的能源效率:能源、时间和内存有何关系?》,文中测试了当今使用的多种最流行的编程语言,以确定其消耗的能源量等。结果表明,尽管Python很受欢迎,但它执行程序时消耗的能量达到4390焦,是 C++ 77焦的57倍。其他能耗最高的编程语言还包括Perl、Ruby和Lua。

这些测试当时是使用英特尔的RAPL工具进行的,该工具可供显示英特尔CPU的能耗指标,在当时是一个不错的选择。尽管五年后论文作者基于ARM芯片进行了后续测试,但排名结果几乎没有变化。结果表明,C语言是最快、最节能的编程语言;前五的编程语言在能效、速度和内存使用上都占优;编译型语言总是优于解释型语言。

Python是一种典型的解释型语言,不同于Ada、C++和Rust等编译型语言直接将代码转化成机器指令,Python必须首先由单独的程序读取,然后才能翻译为机器指令。解释型语言通常更容易学习和使用,但这是以更低的能效为代价的。

Python在许多领域都非常受欢迎,不仅仅是人工智能方面,其在金融领域也非常普遍。例如,投资公司英仕曼集团就将其称为公司的“第二语言”。事实上大多数银行都喜欢使用高替代性的解释语言,比如高盛内部对专有编程语言Slang的热情是有据可循的。同样的现象在金融科技领域非常普遍,例如Stripe严重依赖 Ruby,而Ruby的速度仅比Python快一点。

C++可能“对环境很友善”,但对其开发人员却并非友善。C++本质上很难使用,这往往决定了精通掌握C++的开发人员对于类似对冲基金和高频交易的金融企业等领域有着非常大的价值。另一方面,Rust同样具备较好的能源效率,但是它使用起来能够让程序员感到更加轻松愉悦一些。然而,除了一些加密货币之类的角色之外,Rust在诸如金融等大型领域缺乏影响力。

最奇特的是Java,能效前五中唯一不是纯编译型语言。使用虚拟机JVM运行应用程序的Java语言似乎是一个特例。

文/水哥

0 阅读:0