java 计算引擎比较

今天抽空实现了三元表达式等功能,而后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