今天抽空实现了三元表达式等功能,然后checkout jindw写的测试代码,测试代码有些问题(Fel出现的编译异常,是由于没有正确使用Context导致的),经过改正后再做了一下测试,结果如下(数值越小越好):
Source:'A' == 'A' || 'B' == 'B' && 'ABCD' == t && 'A' == 'A'
result:true
Source:1000+100.0*99-(600-3*15)%(((68-9)-3)*2-100)+10000%7*71
result:11181
Source:6.7-100>39.6 ? 5==5? 4+5:6-1 : !(100%3-39.0<27) ? 8*2-199: 100%3
result:1
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
Source:i * pi
result:314.0000104904175
Source:thiz.add(1,3)
result:4
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提供的测试代码