jzhang
2014-4-7 15:44:00
阅读(2432)
评论(2)
先把官方主页摆出来:
外链网址已屏蔽luajit.org/luajit.html
Lua JIT 1.0早就有了,但是性能一般,这次的2.0是重新编写的,优化效果有了质的飞跃。
下面这个表是作者的测试结果,其中Lua实现的MD5算法,经过JIT优化后,性能提升了152.7倍!
md5 152.7 | mandelbrot 13.4 | nsieve 4.7 |
array3d 101.5 | pidigits 12.4 | partialsums 4.1 |
array 73.5 | random 12.2 | chameneos 3.8 |
methcall 28.8 | nsievebits 12.0 | recursive 3.5 |
nsievebits 28.0 | nestedloop 11.9 | knucleotide 3.4 |
matrix 23.0 | lists 9.3 | binarytrees 2.7 |
spectralnorm 21.4 | cheapconcr 5.5 | meteor 2.0 |
fannkuch 20.9 | cheapconcw 5.4 | revcomp 1.8 |
nbody 14.8 | fasta 5.3 | sumfile 1.5 |
可见对纯计算的代码,JIT 2.0的优化效果最好,而涉及到文件的则不太明显。
JIT 2.0这么高的性能提升,会反过来让人质疑Lua本身的性能是不是太差了,下面这个表正好。
SciMark composite |
small score | FFT SOR MC SPARSE LU
----------------------------+---------------------------------------
GCC 4.3.2 906.1 | 739.1 909.0 190.4 1057.0 1635.1
JVM 1.6 Server 876.3 | 573.8 1185.5 297.7 579.2 1745.4
JVM 1.6 Client 579.6 | 424.8 895.8 122.8 595.5 859.0
----------------------------+---------------------------------------
LuaJIT 2.0.0-beta1 580.4 | 427.4 1025.0 223.7 303.4 922.5
LuaJIT 1.1.5 96.7 | 72.0 166.1 37.1 91.8 116.5
Lua 5.1.4 16.5 | 11.0 27.4 7.6 16.9 19.5
可以看到对傅立叶变化,Lua的性能是C的 1.5%,经过JIT 2.0优化后则是 58%。
所以Lua的确不快。
有消息说网易的网络游戏因为使用Lua,其单服务器负荷能力大大低于使用其他语言如LPC的游戏。
这只是传言,未经证实。从下面这个网站看,Lua又似乎是所有脚本语言中最快的。
外链网址已屏蔽shootout.alioth.debian.org/u32/benchmark.php
BenchMark这事,似乎不是太靠谱。
(SciMark是最初Java定义的测试语言在计算密集代码中性能如何的标准)
评论列表
路人2014-4-7 15:44:00
re: Lua JIT 2.0 发布了,一百五十倍的性能提升!
这主要是纯计算方面性能的提高, 实际的lua里面有多少是跑纯计算的
大部分的性能耗费更多在io上,
看介绍, 主要是使用汇编级的代码替换及高级指令, 脚本语言本身需要跨平台的伪码变换在纯计算方面性能损耗那当然是相当大, lua已经算很好了(这本来就是脚本语言最弱的地方), 而改成本地代码自然好很多, 但要综合平均起来, 提高的幅度很有限
不过如果是补充了在纯计算方面的弱势, 那么lua真的可以笑傲江湖了
jzhang2014-4-7 15:44:00
在服务器端跑的Lua脚本还是以计算为主的
以LPC为例,大部分的LPC脚本都用于处理游戏策略,战斗,统计,等等。真正的IO大部分都是MudOS用C提供的接口。所以LPC的代码经常需要用延迟调用,把一次计算拆分成多次来进行。
发表评论
您还没有登录,请[登录]或[注册]