Lua挑战:你能提高fannkuch实现的性能吗?

Lua目前是最快的脚本语言,对于某些程序它不比C/C++慢太多(在pidgits 1:1时它们基本相当),但是在一些与C/C++的基准测试中Lua得分很低。

其中之一就是fannkuch测试(对数组进行索引访问),在这个基准测试中它得分可怕的1:148。

那么如何进行优化呢(当然,与任何优化一样,您必须测量您的实现以确保它更快)?而且您不能改变Lua的C内核或使用LuaJit,它是关于寻找优化Lua的一个弱点的方式。

原文链接 https://stackoverflow.com/questions/570283

点赞
stackoverflow用户63471
stackoverflow用户63471

当您引用基准测试结果时,请展示数据来源以供读者参考。

在这种情况下,您似乎使用的是在四核机器上测得的数字,其中最快的程序已被重新编写以利用多个核心。如果您查看 CPU 时间而不是流逝时间,您将看到比例降至 1:43(请查看 http://shootout.alioth.debian.org/u32q/benchmark.php?test=fannkuch&lang=all&sort=fullcpu)。

或者查看中位数和四分位数,以更好地了解 C++ 测试结果与 Lua 测试结果之间的比较

还有一整套使用单个核心的程序测试结果——Lua 与 C++ 的比较——如果您查看这些 Lua pi-digits 程序,您将看到它们使用的是 C 语言 GNU GMP 库。

2009-02-20 22:31:57