package study.java.hanyx.el.test; import java.util.HashMap; import java.util.Map; import org.mvel2.MVEL; import com.googlecode.aviator.AviatorEvaluator; import com.greenpineyu.fel.FelEngine; import com.greenpineyu.fel.context.FelContext; public class Challenge3 { private static final String el = "单价*数量+运费"; public static void main(String[] args) { int times = 100000; long time1 = System.currentTimeMillis(); for (int i = 0; i < times; i++) { mvEL(); } long time2 = System.currentTimeMillis(); for (int i = 0; i < times; i++) { fastEL(); } long time3 = System.currentTimeMillis(); for (int i = 0; i < times; i++) { aviatorEl(); } long time4 = System.currentTimeMillis(); System.out.println("Fast-EL耗时: " + (time3-time2) + " ms"); System.out.println("Aviator耗时: " + (time4-time3) + " ms"); System.out.println("MVEL耗时: " + (time2-time1) + " ms"); } private static void fastEL() { // FelEngine fel = new FelEngineImpl(); FelContext ctx = FelEngine.instance.getContext(); ctx.set("单价", 5000); ctx.set("数量", 12); ctx.set("运费", 7500); FelEngine.instance.eval(el); } private static void aviatorEl() { Map<String, Object> params = new HashMap<String, Object>(); params.put("单价", 5000); params.put("数量", 12); params.put("运费", 7500); AviatorEvaluator.execute(el,params); } private static void mvEL() { Map<String, Object> params = new HashMap<String, Object>(); params.put("单价", 5000); params.put("数量", 12); params.put("运费", 7500); MVEL.eval(el, params); } }