package com.blogspot.hypefree.fastexprbench; import com.google.caliper.Benchmark; import com.google.caliper.runner.CaliperMain; public final class BenchmarkExpressionEvaluation extends Benchmark { private Evaluators evaluators, precompiledEvaluators; @Override public void setUp() throws Exception { evaluators = new Evaluators(); precompiledEvaluators = new Evaluators(); precompiledEvaluators.compileParsii(); precompiledEvaluators.compileJeval(); precompiledEvaluators.compileJeplite(); precompiledEvaluators.compileMathEval(); precompiledEvaluators.compileExpr(); precompiledEvaluators.compileJanino(); precompiledEvaluators.compileJaninoFastexpr(); precompiledEvaluators.compileMVEL(); precompiledEvaluators.compileMVELConstant(); } public double timeParsii(int reps) throws Exception { evaluators.compileParsii(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateParsii(); } return result; } // public double timeJeval(int reps) throws Exception { // evaluators.compileJeval(); // // double result = 0; // for (int i = 0; i < reps; ++i) { // result += evaluators.evaluateJeval(); // } // return result; // } public double timeJeplite(int reps) throws Exception { evaluators.compileJeplite(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateJeplite(); } return result; } public double timeMathEval(int reps) throws Exception { evaluators.compileMathEval(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateMathEval(); } return result; } public double timeExpr(int reps) throws Exception { evaluators.compileExpr(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateExpr(); } return result; } public double timeJanino(int reps) throws Exception { evaluators.compileJanino(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateJanino(); } return result; } public double timeJaninoFastexpr(int reps) throws Exception { evaluators.compileJaninoFastexpr(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateJaninoFastexpr(); } return result; } public double timeMVEL(int reps) throws Exception { evaluators.compileMVEL(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateMVEL(); } return result; } public double timeMVELConstant(int reps) throws Exception { evaluators.compileMVELConstant(); double result = 0; for (int i = 0; i < reps; ++i) { result += evaluators.evaluateMVELConstant(); } return result; } public double timeParsiiPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateParsii(); } return result; } // public double timeJevalPrecompiled(int reps) throws Exception { // double result = 0; // for (int i = 0; i < reps; ++i) { // result += precompiledEvaluators.evaluateJeval(); // } // return result; // } public double timeJeplitePrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateJeplite(); } return result; } public double timeMathEvalPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateMathEval(); } return result; } public double timeExprPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateExpr(); } return result; } public double timeJaninoPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateJanino(); } return result; } public double timeJaninoFastexprPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateJaninoFastexpr(); } return result; } public double timeMVELPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateMVEL(); } return result; } public double timeMVELConstantPrecompiled(int reps) throws Exception { double result = 0; for (int i = 0; i < reps; ++i) { result += precompiledEvaluators.evaluateMVELConstant(); } return result; } public static void main(String... args) { CaliperMain.main(BenchmarkExpressionEvaluation.class, new String[] { "--print-config", "-Cinstrument.micro.options.warmup=30s", "--time-limit", "5m", "--instrument", "micro" }); } }