package org.mvel2.tests.perftests; import org.mvel2.MVEL; import org.mvel2.integration.impl.MapVariableResolverFactory; import org.mvel2.tests.core.CoreConfidenceTests; import org.mvel2.tests.core.res.Bar; import org.mvel2.tests.core.res.Base; import org.mvel2.tests.core.res.Foo; import org.mvel2.util.ParseTools; import java.io.File; import java.io.IOException; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; public class CompiledPerformanceTests { protected Foo foo = new Foo(); protected Map<String, Object> map = new HashMap<String, Object>(); protected Base base = new Base(); public CompiledPerformanceTests() { foo.setBar(new Bar()); map.put("foo", foo); map.put("a", null); map.put("b", null); map.put("c", "cat"); map.put("BWAH", ""); map.put("misc", new CoreConfidenceTests.MiscTestClass()); map.put("pi", "3.14"); map.put("hour", "60"); map.put("zero", 0); } public void testQuickSort() throws IOException { Serializable s = MVEL.compileExpression(new String(ParseTools.loadFromFile(new File("samples/scripts/fquicksort.mvel")))); HashMap map = new HashMap(); MapVariableResolverFactory mvrf = new MapVariableResolverFactory(map); for (int i = 0; i < 1000000; i++) { MVEL.executeExpression(s, mvrf); mvrf.clear(); } // for (int x = 0; x < 4; x++) { // Serializable s = MVEL.compileSetExpression("tak.bar.name"); // long time = System.currentTimeMillis(); // // for (int i = 0; i < ITERATIONS; i++) { // MVEL.executeSetExpression(s, map, "foobie"); // } // // System.out.println("SET PERFORMANCE: " + (System.currentTimeMillis() - time)); // // time = System.currentTimeMillis(); // // s = MVEL.compileExpression("tak.bar.name"); // // for (int i = 0; i < ITERATIONS; i++) { // MVEL.executeExpression(s, map); // } // // System.out.println("GET PERFORMANCE: " + (System.currentTimeMillis() - time)); // // } } public void testQuickSort2() throws IOException { testQuickSort(); } public void testQuickSort3() throws IOException { testQuickSort(); } }