免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10068 | 回复: 6
打印 上一主题 下一主题

看看LLVM-lua的性能吧! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-20 08:25 |只看该作者 |倒序浏览
script        lua      llvm-lua  native   luajit   
ackermann     2.20     2.31      1.88     0.40     
ary           1.06     0.60      0.54     0.27     
binarytrees   1.62     1.47      1.36     0.97     
chameneos     1.13     0.71      0.63     0.23     
except        1.12     0.97      0.87     0.49     
fannkuch      1.40     0.81      0.69     0.29     
fibo          0.83     0.54      0.50     0.13     
harmonic      1.28     0.42      0.28     0.23     
hash          1.08     1.12      0.91     0.89     
hash2         1.07     0.90      0.86     0.49     
heapsort      1.09     0.61      0.50     0.25     
hello         0.00     0.07      0.00     0.00     
knucleotide   0.66     0.72      0.56     0.44     
lists         1.04     0.83      0.69     0.43     
matrix        1.06     0.64      0.55     0.29     
meteor        3.95     6.03      4.52     1.20     
methcall      1.14     0.85      0.70     0.42     
moments       0.93     0.87      0.74     0.87     
nbody         1.05     0.78      0.54     0.23     
nestedloop    1.06     0.39      0.28     0.16     
nsieve        1.12     0.89      0.79     0.59     
nsievebits    1.39     0.84      0.66     0.23     
objinst       1.02     0.97      0.84     0.77     
partialsums   1.01     0.74      0.63     0.30     
pidigits      1.21     1.72      1.30     0.56     
process       0.00     0.82      0.90     0.82     
prodcons      0.98     0.68      0.58     0.29     
random        1.09     0.54      0.50     0.22     
recursive     1.27     0.80      0.65     0.15     
regexdna      0.97     1.04      1.23     0.96     
regexmatch    0.26     0.34      0.28     0.26     
revcomp       0.36     0.50      0.39     0.24     
reversefile   0.44     0.45      0.45     0.40     
sieve         1.03     0.62      0.55     0.28     
spectralnorm  1.23     0.66      0.54     0.27     
spellcheck    0.74     0.77      0.76     0.72     
strcat        0.87     0.82      0.70     0.63     
sumcol        0.81     0.88      0.81     0.85     
takfp         0.43     0.35      0.27     0.07     
wc            0.92     1.02      1.09     1.40     
wordfreq      0.68     0.73      0.65     0.62     
Total         42.60    37.82     32.17    19.31   

“LLVM-Lua, is a JIT and static Lua compiler”

无语,需要的话不久上传部分测试算法。

论坛徽章:
0
2 [报告]
发表于 2009-09-20 09:55 |只看该作者

data for largest N test

language          |-          |---          25%         median          75%          ---|          -|

        C++ GNU g++         1.00        1.00        1.00        1.00        1.03        1.08        6.61

        C GNU gcc         1.00        1.00        1.00        1.00        1.24        1.59        28.81

        ATS         1.01        1.01        1.16        1.67        4.67        8.54        8.54

        Java 6 steady state         1.20        1.20        1.32        1.81        2.29        3.75        22.31

        Java 6 -server         1.22        1.22        1.39        1.94        2.85        5.03        9.85

        Ada 2005 GNAT         1.00        1.00        1.59        2.28        6.51        9.93        9.93

        Scala         1.17        1.17        1.88        2.60        4.13        7.50        21.01

        C# Mono         1.33        1.33        1.80        2.75        10.75        24.17        51.22

        Lisaac         1.19        1.19        1.61        2.79        4.08        5.21        5.21

        Haskell GHC         1.01        1.01        2.23        2.85        4.63        8.21        10.34

        OCaml         1.94        1.94        2.73        3.33        5.60        9.90        348.40

        Lisp SBCL         1.52        1.52        2.36        3.63        5.10        9.21        29.98

        Pascal Free Pascal         1.53        1.53        1.76        4.18        6.28        12.98        12.98

        Clean         1.38        1.38        3.14        5.17        7.87        14.97        18.46

        Fortran Intel         1.16        1.16        1.61        6.11        9.50        21.34        27.36

        F# Mono         2.40        2.40        3.87        7.75        28.47        35.66        35.66

        Lua LuaJIT         1.33        1.33        6.04        11.90        20.10        41.19        76.88

        Erlang HiPE         3.41        3.41        7.36        15.86        25.88        53.65        155.27

        Scheme PLT         1.50        1.50        12.35        17.20        74.55        167.85        309.78

        Java 6 -Xint         1.87        1.87        12.05        19.57        25.72        46.23        56.30

        JavaScript V8         7.63        7.63        13.23        30.39        57.11        69.12        69.12

        Smalltalk VisualWorks         8.90        8.90        15.70        30.94        55.55        115.33        179.94

        Lua         1.34        1.34        18.99        35.03        89.41        149.07        149.07

        Groovy         7.99        7.99        23.25        37.87        82.37        171.06        301.88

        JavaScript TraceMonkey         2.02        2.02        16.54        44.74        137.02        317.75        944.04

        Python 3         5.68        5.68        27.09        48.15        117.54        253.22        346.06

        PHP         2.03        2.03        8.30        54.77        88.56        118.51        118.51

        Mozart/Oz         7.51        7.51        31.54        58.90        172.77        364.95        364.95

        Python         1.98        1.98        25.37        63.66        120.11        262.23        309.41

        Perl         2.15        2.15        32.52        79.32        237.49        483.76        483.76

        Ruby JRuby         14.97        14.97        32.86        92.26        161.05        353.34        721.44

        Ruby 1.9         8.37        8.37        30.77        99.90        221.36        507.24        1060.61

        Ruby         8.59        8.59        66.68        183.10        337.07        742.66        1938.82

论坛徽章:
0
3 [报告]
发表于 2009-09-20 15:52 |只看该作者
基准测试用的机器

Ubuntu™ : Intel® Q6600® quad-core  

x64 Ubuntu™ : Intel® Q6600® quad-core  

x64 Ubuntu™ : Intel® Q6600® one core  

Ubuntu™ : Intel® Q6600® one core  

OS
Ubuntu™ 9.04 Linux Kernel 2.6.28-15-generic

http://shootout.alioth.debian.org/

论坛徽章:
0
4 [报告]
发表于 2009-09-20 16:37 |只看该作者
你可以注册一个ID,提交自己的测试算法。

论坛徽章:
0
5 [报告]
发表于 2009-09-20 17:03 |只看该作者
http://math.nist.gov/scimark2/
这个是第一贴的算法地址,这个程序小,偏向数学运算。
这正的语言测试还是参考:
http://shootout.alioth.debian.org/

论坛徽章:
0
6 [报告]
发表于 2009-09-20 17:54 |只看该作者
LLVM测试参照基准luaJIT 的说明

功能
所有的函数缺省会被JIT(即时编译器)编译到本地机器码:
* 没有被使用的函数不会被编译.
* 可以选择性打开和关闭即时编译函数,子函数甚至整个模块.
* 需要解析的函数(译注:即没有被编译的函数)和编译过的函数可以自由的混合使用.
预编译(Ahead-of-time AOT)也是被支持的:
* 一些API函数和命令行选项允许用户全盘控制编译过程
这个即时编译器是可扩展的:
* 优化器是一个外部模块可以附着在编译器流水线上.
* 一些模块提供了关于编译过程的跟踪和调试信息.
* 所以这些功能可以通过命令行参数来激活.
性能
被编译的机器码是非常高效的:
* 先请看一下性能对比测试
* 在任何可以采用的地方采取了侵入性优化措施(特殊化,内联).内联的约定(contracts)在运行时捕获错误的优化预测(未发现的多态).
* 自适应去优化被用来重新编译那些破坏了约定的字节码指令.这避免了生成普通的低效率的通用代码(更快速编译,减少指令缓存(I-cache)争抢).
* 特殊CPU功能(比如条件转移或SSE2)会自动被检测和使用.
这个JIT编译器是非常的快的:
* 整个JIT编译器只在Lua核心上增加了32K代码(如果采用 -Os 大小优化参数来编译).
* 优化器被分成几个可选的模块,可以在运行时根据需要来加载.
* LuaJIT添加了大约6000行C代码和2000行汇编代码于Lua 5.1 核心(17,000行C代码)
* 依赖的构建工具 (DynASM) 有大约2,500行Lua代码.
兼容性
LuaJIT被设计成全兼容Lua 5.1.她接受同样的源代码和/或预编译字节码.她支持所有标准语言语义.特别是:
* 支持所有标准类型,操作符和元方法.
* 隐式类型强制转换(number/string).
* 完全 IEEE-754 语义浮点算法(NaN, +-Inf, +-0, ...).
* 完全支持词法闭包.正确的尾调用不会消耗栈帧(译注:栈空间).
* 异常是精确的.回溯追踪工作的很好.
* 通过CoCo提供协程支持.(译注:一点兼容性问题 )
* 没有改变Lua 5.1的增量垃圾收集器.
* 没有改变标准Lua/C API.
* 动态加载的C模块保持和Lua 5.1一样链接兼容性(同样的ABI 抽象二进制接口).(译注:基本不用重新编译老的Lua模块,但是仍然偶遇兼容性问题).
* LuaJIT可以像Lua那样嵌入到一个应用程序里.
一些次要的不同点和调试有关:
* 调试钩子只在调试代码生成使能时调用
* 在JIT编译过的代码中不支持尾调用计数.HOOKTAILRET 也不会被调用.注意: 除非你写Lua调试器,否则这些对你没有影响.
限制
* 目前只支持x86(i386+)CPU.
* 只支持缺省的 lua_Number 类型(double).
* 终止信号(Ctrl-C)被忽略.除非你使能调试钩子(用 -j 调试).
但是这会减慢运行速度.我正在找更好的解决办法.与此同时,你可以按两次Ctrl-C来终止一个正在运行的JIT编译过函数(类似C函数).
* GDB,Valgrind 和其它调试工具不能够报告JIT编译后代码的符号和栈.这很难解决.参考 调试LuaJIT .

论坛徽章:
0
7 [报告]
发表于 2009-09-21 17:27 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP