完成需求 I7KEB8,默认运算采用精度运算。
Beetl默认情况下当遇到数字以h结尾的时候,认为是BigDecimal类型,随后运算使用高精度运算。
var a= 3434.33h*233334;
新版本增加配置,不允许显示的使用h表示高精度类型
BIGDECIMAL=true
则默认所有数字都翻译成BigDecimal
Script script = groupTemplate.getScript("return 5/3;",loader);
script.execute();
if(script.isSuccess()){
Object value = script.getResult().get("return");
Assert.assertTrue(value instanceofBigDecimal);
Assert.assertEquals(value,new BigDecimal(5).divide(new BigDecimal(3),ALU.scale, ALU.round ));
}else{
Assert.fail();
}
Maven
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.15.7.RELEASE</version>
</dependency>
文档 源码 在线体验 模板性能测试 表达式引擎性能测试 性能优化指南
最新模板性能测试,各个模板引擎均采用最新版本, Score 越大越好
Beetl>Rocker>>Freemarker>>Thymeleaf==Velociy
BenchmarkModeCntScoreErrorUnits Beetl.benchmark thrpt5141912.506 ± 19090.130ops/s Freemarker.benchmarkthrpt5 48062.783 ±9054.282ops/s Handlebars.benchmarkthrpt5 48505.286 ±6078.944ops/s Rocker.benchmarkthrpt5102699.041 ± 11827.123ops/s Thymeleaf.benchmark thrpt5 14495.261 ±1460.815ops/s Velocity.benchmarkthrpt5 12071.498 ±4226.219ops/s
最新规则引擎性能测试,Score 越大越好
JfireEL>> Aviator=Beetl=Jexl3 >>Spel>>Mvel=Groovy>>Nashor
Benchmark ModeCnt ScoreErrorUnits Aviator.forExpresssthrpt5501413.321 ± 4657.336ops/s Aviator.ifExpresss thrpt5 4699456.542 ± 266831.101ops/s Aviator.simpleExpressthrpt5 3868701.018 ±38439.986ops/s Beetl.forExpresssthrpt5 1685875.017 ±28454.020ops/s Beetl.ifExpresss thrpt5 4461489.443 ±78687.317ops/s Beetl.reflectthrpt5 62972.088 ±85785.390ops/s Beetl.simpleExpressthrpt5 4328852.130 ± 144586.699ops/s Groovy.ifExpresssthrpt5119493.364 ± 1472.301ops/s Groovy.simpleExpress thrpt5121724.720 ± 1533.726ops/s Jexl3.forExpresssthrpt5789815.632 ±42390.393ops/s Jexl3.ifExpresss thrpt5 4500714.752 ± 138214.400ops/s Jexl3.simpleExpressthrpt5 3901843.173 ± 125472.114ops/s JfireEL.ifExpresss thrpt528337464.920 ± 291859.385ops/s JfireEL.simpleExpressthrpt518824292.084 ± 103241.504ops/s Mvel.forExpresss thrpt5 11954.857 ± 84.105ops/s Mvel.ifExpresssthrpt5230373.242 ± 1827.288ops/s Mvel.simpleExpress thrpt5316083.646 ± 1320.717ops/s Nashorn.ifExpresss thrpt5 10010.541 ±752.057ops/s Nashorn.simpleExpressthrpt58993.022 ±518.940ops/s Spel.ifExpresssthrpt5850338.540 ±41826.542ops/s Spel.simpleExpress thrpt5636251.839 ±
Beetl.reflect 是指Beetl能像Java反射那样能查询出表达式结构,变量名