今天抽空实现了三元表达式等功能,而后checkout jindw写的测试代码,测试代码有些问题(Fel出现的编译异常,是因为没有正确使用Context致使的),通过改正后再作了一下测试,结果以下(数值越小越好):
Source:'A' == 'A' || 'B' == 'B' && 'ABCD' == t && 'A' == 'A'
result:true
Labels: |
JXEL |
JSEL |
MVEL |
Ognl |
Aviator |
FEL |
Times: |
14.422548 |
0.469657 |
3.260236 |
1.066871 |
18.100636 |
0.351877 |
Scale: |
40.98747 |
1.3347192 |
9.265272 |
3.031943 |
51.440235 |
1.0 |
Source:1000+100.0*99-(600-3*15)%(((68-9)-3)*2-100)+10000%7*71
result:11181
Labels: |
JXEL |
JSEL |
MVEL |
Ognl |
Aviator |
FEL |
Times: |
193.1466 |
0.455974 |
0.597213 |
0.164698 |
16.732227 |
0.046428 |
Scale: |
4160.132 |
9.821099 |
12.863208 |
3.5473852 |
360.3909 |
1.0 |
Source:6.7-100>39.6 ? 5==5? 4+5:6-1 : !(100%3-39.0<27) ? 8*2-199: 100%3
result:1
Labels: |
JXEL |
JSEL |
MVEL |
Ognl |
Aviator |
FEL |
Times: |
70.39343 |
0.702776 |
6.138294 |
0.3812 |
13.452444 |
0.049849 |
Scale: |
1412.1333 |
14.098096 |
123.13776 |
7.6470942 |
269.86386 |
1.0 |
Source:i * pi + (d * b - 199) / (1 - d * pi) - (2 + 100 - i / pi) % 99 ==i * pi + (d * b - 199) / (1 - d * pi) - (2 + 100 - i / pi) % 99
result:true
Labels: |
JXEL |
JSEL |
MVEL |
Ognl |
Aviator |
FEL |
Times: |
66.77692 |
80.50451 |
630.2782 |
2147.4836 |
135.19154 |
1.860059 |
Scale: |
35.900433 |
43.280624 |
338.8485 |
1154.5245 |
72.68131 |
1.0 |
Source:i * pi
result:314.0000104904175
|
Labels: |
JXEL |
JSEL |
MVEL |
Ognl |
Aviator |
FEL |
Times: |
2.280357 |
1.144577 |
13.597592 |
0.744806 |
12.63433 |
0.74725 |
Scale: |
3.0616791 |
1.5367452 |
18.256556 |
1.0 |
16.96325 |
1.0032814 |
Source:thiz.add(1,3)
result:4
Labels: |
JXEL |
JSEL |
MVEL |
Ognl |
Aviator |
FEL |
Times: |
25.700687 |
20.073105 |
46.815735 |
1.44465 |
2147.4836 |
0.295674 |
Scale: |
86.92238 |
67.88931 |
158.33565 |
4.8859553 |
7263.011 |
1.0 |
备注:这个测试对于Aviator是不公平的,由于没有使用Aviator2.0。其余包没有太关注。如今正在开发新的功能,没有时间作详细测试,在家里仍是感谢jindw提供的测试代码测试
转载连接:http://www.iteye.com/news/22797spa