groovy与mvel比较
所属分类 groovy
浏览量 3152
动态脚本 表达式引擎
常用于规则引擎
mvel 使用更简单
mvel编译出来的对象 无状态 , groovy编译出来的对象有状态
groovy 对字符串内的 $xxx 会做变量解析 , 与shell类似 ,该功能多余 ,字符串中包含$ 需要转义
mvel 不会做变量解析
groovy 把 数字类型 参数设置成 string 报错 , mvel可兼容
groovy 参数使用 Binding 对象 , mvel 使用 map ,更通用
jar包大小
groovy-2.5.6.jar 5466446 5M
mvel2-2.2.0.Final.jar 1013700 1M
groovy的非编译版本 性能非常渣 而且方法区容易爆 不建议使用
性能对比
不编译和编译 性能差异较大 ,只比较编译后执行的情况
// mvel compile
Serializable compiledExpression = null;
// 表达式编译
compiledExpression = MVEL.compileExpression(expression);
long start = System.currentTimeMillis();
for(int j=0;j
代码看起来 groovy更复杂 ,但是执行起来 groovy 反而更快
性能测试完整代码
https://gitee.com/dyyx/mveldemo/blob/master/src/main/java/dyyx/PerfTest.java
上一篇
下一篇
java日志打印建议
groovy与java的一些区别
groovy简介
常用硬件性能参数
System.getenv 与 System.getProperty 的区别
logback.xml变量取不到值问题