← 最新论文
💻 computer science

The Green Side of the Lua

本文通过一项实证研究表明,即时编译(JIT)显著提升了 Lua 的能效与执行速度,其中最优化版本的 LuaJIT 相比标准解释器在能耗上降低了七倍,在运行速度上也提升了七倍,并接近了 C 语言的性能。

原作者: André Brandão, Diogo Matos, Miguel Guimarães, Simão Cunha, João Saraiva

发布于 2026-02-02
📖 1 分钟阅读☕ 轻松阅读

原作者: André Brandão, Diogo Matos, Miguel Guimarães, Simão Cunha, João Saraiva

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你拥有一辆汽车。有些车配备的是笨重、老式的发动机,虽然费油但最终能把你送到目的地。而另一些车则拥有高科技的涡轮增压发动机,不仅耗油量极低,而且能更快地带你到达目的地。

这篇论文本质上是对 Lua 编程语言进行的一次“燃油经济性测试”,Lua 是一种开发者用来构建软件的流行工具。研究人员想要观察不同版本的 Lua“发动机”在完成同样的工作时,消耗了多少“能量”(电量),以及它们与 C 语言(被视为燃油效率的金标准)相比表现如何。

以下是使用简单类比对研究结果进行的详细解读:

1. 设置:不同的“发动机”版本

研究人员不仅仅测试了一个版本的 Lua。他们测试了 25 个不同的版本

  • “标准型”发动机(解释器): 这些是官方版本的 Lua,它们逐条读取指令,就像一个人对着厨师大声朗读食谱一样。他们测试了 17 个不同的版本,涵盖了从旧型号到最新款(5.4.7)的所有版本。
  • “涡轮增压型”发动机(JIT 编译器): 这些是被称为 LuaJIT 的特殊版本。它们不再是逐条朗读食谱,而是在汽车行驶的过程中,将整份食谱翻译成一份极其高效的说明书。他们测试了 8 个这样的版本。
  • “金标准”(C 语言): 他们还测试了一个用 C 语言编写的版本,C 语言以其极高的效率而闻名,以此来观察 Lua 距离顶尖水平还有多远。

2. 比赛:速度 vs. 燃油

他们在所有这些发动机上运行了同一组复杂的数学问题(基准测试),并测量了两项指标:

  • 时间: 完成比赛需要多长时间?
  • 能量: 完成比赛时计算机消耗了多少电量?

结果如下:

  • 旧款发动机很“渴”: 标准的 Lua 解释器就像是耗油量巨大的 SUV。最新的标准版本(Lua 5.4.7)是同类中表现最好的,但它消耗的能量和所需的时间仍然是最佳涡轮发动机的 7 倍
  • 涡轮发动机大获全胜: 最好的涡轮发动机(LuaJIT 2.0.4)是明显的赢家。它速度极快,且耗电量非常低。
  • 与“金标准”的差距: 即便使用了涡轮发动机,Lua 的效率也还赶不上 C 语言。涡轮版 Lua 消耗的能量约为 C 语言的 6 倍,速度慢了 8 倍。然而,这与标准 Lua 相比已经是巨大的进步了——标准 Lua 的耗能是 C 语言的 38 倍,速度则慢了 55 倍

3. “电池续航”测试

为了让结果更直观,研究人员进行了一项“电池耐力”测试。想象你有一台电量满格的笔记本电脑。

  • C 语言汽车: 在电池耗尽前可以行驶(运行程序)604 次
  • 涡轮版 Lua 汽车: 可以行驶 109 次
  • 标准版 Lua 汽车: 只能行驶 19 次

这表明,如果你在电池供电的设备(如笔记本电脑或手机)上运行软件,使用标准的 Lua 解释器会比使用涡轮版本或 C 语言更快地耗尽你的电池。

4. 这对“绿色”软件意味着什么

联合国希望我们能够减少全球碳足迹。由于计算机使用电力,而电力通常来自燃烧化石燃料,因此编写“绿色软件”(即使用更少能量的软件)至关重要。

该论文得出结论:

  • “旧”并不总是意味着“好”: 尽管标准 Lua 随着每一次更新都在略微改进,但这种进步与切换到“即时”(JIT)编译器所带来的飞跃相比,显得微不足道。
  • JIT 是游戏规则的改变者: 从标准的解释器切换到 JIT 编译器,就像是将一辆耗油的卡车换成了混合动力汽车。它极大地减少了能量浪费,并让软件运行得更快。
  • Lua 正在变得更“绿”: 通过使用涡轮(JIT)版本,Lua 在“绿色”编程语言的排名中显著上升,尽管它距离像 C 语言这样最高效的语言仍有很长的路要走。

简而言之: 如果你想让你的 Lua 软件既快速又环保,不要只使用标准版本。请使用“涡轮”(JIT)版本,它能让你的程序运行得更快,耗电更少,从而使其效率大大接近世界上最优秀的语言。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →