package org.drools.compiler; import java.io.IOException; import java.io.InputStreamReader; import junit.framework.TestCase; import org.drools.rule.Package; public class CompilerPerfProfileTest extends TestCase { public void testProfileRuns() throws Exception { //first run for warm up build("JDT", "largeRuleNumber.drl", false); build("MVEL", "largeRuleNumberMVEL.drl", false); System.gc(); Thread.sleep( 100 ); build("MVEL", "largeRuleNumberMVEL.drl", true); System.gc(); Thread.sleep( 100 ); build("JDT", "largeRuleNumber.drl", true); } private void build(String msg, String resource, boolean showResults) throws DroolsParserException, IOException { final PackageBuilder builder = new PackageBuilder(); long start = System.currentTimeMillis(); builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( resource ) ) ); final Package pkg = builder.getPackage(); assertFalse(builder.hasErrors()); assertNotNull(pkg); if (showResults) { System.out.print( "Time taken for " + msg + " : " + (System.currentTimeMillis() - start) ); } } }