From: <jbo...@li...> - 2006-04-21 01:58:26
|
Author: brown_j Date: 2006-04-20 21:58:21 -0400 (Thu, 20 Apr 2006) New Revision: 3875 Added: labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoadTest.java labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformanceTest.java labs/jbossrules/trunk/drools-examples/src/test/resources/ labs/jbossrules/trunk/drools-examples/src/test/resources/com/ Removed: labs/jbossrules/trunk/drools-examples/src/resources/com/ labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoad.java labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformance.java Log: reorg some test support files Deleted: labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoad.java =================================================================== --- labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoad.java 2006-04-21 01:54:06 UTC (rev 3874) +++ labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoad.java 2006-04-21 01:58:21 UTC (rev 3875) @@ -1,89 +0,0 @@ -package com.sample.benchmark; - -import junit.framework.TestCase; - -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.util.ArrayList; -import java.util.Iterator; - -import org.drools.PackageIntegrationException; -import org.drools.RuleBase; -import org.drools.RuleIntegrationException; -import org.drools.WorkingMemory; -import org.drools.compiler.DrlParser; -import org.drools.compiler.DroolsParserException; -import org.drools.compiler.PackageBuilder; -import org.drools.lang.descr.PackageDescr; -import org.drools.reteoo.RuleBaseImpl; -import org.drools.rule.InvalidPatternException; -import org.drools.rule.Package; - -import com.sample.benchmark.models.Account; - -/** - * @author Peter Lin - * - */ -public class RuleSetLoad extends TestCase { - public RuleSetLoad() { - super(); - } - - public void setUp() { - - } - - public void tearDown() { - - } - - private static RuleBase readRule(String file) throws IOException, DroolsParserException, RuleIntegrationException, PackageIntegrationException, InvalidPatternException { - //read in the source - Reader reader = - new InputStreamReader( - RuleSetLoad.class.getResourceAsStream( file ) ); - DrlParser parser = new DrlParser(); - PackageDescr packageDescr = parser.parse( reader ); - - //pre build the package - PackageBuilder builder = new PackageBuilder(); - builder.addPackage( packageDescr ); - Package pkg = builder.getPackage(); - - //add the package to a rulebase - RuleBaseImpl ruleBase = new RuleBaseImpl(); - ruleBase.addPackage( pkg ); - return ruleBase; - } - - public void testOneThousandLoad() { - try { - String file = "1000_rules.drl"; - long loadStart = System.currentTimeMillis(); - RuleBase ruleBase = readRule(file); - long loadEnd = System.currentTimeMillis(); - System.out.println("time to load " + file + - " " + (loadEnd - loadStart) + "ms"); - WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void testFourThousandLoad() { - try { - String file = "4000_rules.drl"; - long loadStart = System.currentTimeMillis(); - RuleBase ruleBase = readRule(file); - long loadEnd = System.currentTimeMillis(); - System.out.println("time to load " + file + - " " + (loadEnd - loadStart) + "ms"); - WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} Copied: labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoadTest.java (from rev 3872, labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoad.java) =================================================================== --- labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoad.java 2006-04-21 01:37:31 UTC (rev 3872) +++ labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetLoadTest.java 2006-04-21 01:58:21 UTC (rev 3875) @@ -0,0 +1,89 @@ +package com.sample.benchmark; + +import junit.framework.TestCase; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Iterator; + +import org.drools.PackageIntegrationException; +import org.drools.RuleBase; +import org.drools.RuleIntegrationException; +import org.drools.WorkingMemory; +import org.drools.compiler.DrlParser; +import org.drools.compiler.DroolsParserException; +import org.drools.compiler.PackageBuilder; +import org.drools.lang.descr.PackageDescr; +import org.drools.reteoo.RuleBaseImpl; +import org.drools.rule.InvalidPatternException; +import org.drools.rule.Package; + +import com.sample.benchmark.models.Account; + +/** + * @author Peter Lin + * + */ +public class RuleSetLoadTest extends TestCase { + public RuleSetLoadTest() { + super(); + } + + public void setUp() { + + } + + public void tearDown() { + + } + + private static RuleBase readRule(String file) throws IOException, DroolsParserException, RuleIntegrationException, PackageIntegrationException, InvalidPatternException { + //read in the source + Reader reader = + new InputStreamReader( + RuleSetLoadTest.class.getResourceAsStream( file ) ); + DrlParser parser = new DrlParser(); + PackageDescr packageDescr = parser.parse( reader ); + + //pre build the package + PackageBuilder builder = new PackageBuilder(); + builder.addPackage( packageDescr ); + Package pkg = builder.getPackage(); + + //add the package to a rulebase + RuleBaseImpl ruleBase = new RuleBaseImpl(); + ruleBase.addPackage( pkg ); + return ruleBase; + } + + public void testOneThousandLoad() { + try { + String file = "1000_rules.drl"; + long loadStart = System.currentTimeMillis(); + RuleBase ruleBase = readRule(file); + long loadEnd = System.currentTimeMillis(); + System.out.println("time to load " + file + + " " + (loadEnd - loadStart) + "ms"); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void testFourThousandLoad() { + try { + String file = "4000_rules.drl"; + long loadStart = System.currentTimeMillis(); + RuleBase ruleBase = readRule(file); + long loadEnd = System.currentTimeMillis(); + System.out.println("time to load " + file + + " " + (loadEnd - loadStart) + "ms"); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + } catch (Exception e) { + e.printStackTrace(); + } + } + +} Deleted: labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformance.java =================================================================== --- labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformance.java 2006-04-21 01:54:06 UTC (rev 3874) +++ labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformance.java 2006-04-21 01:58:21 UTC (rev 3875) @@ -1,237 +0,0 @@ -package com.sample.benchmark; - -import junit.framework.TestCase; - -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.util.ArrayList; -import java.util.Iterator; - -import org.drools.PackageIntegrationException; -import org.drools.RuleBase; -import org.drools.RuleIntegrationException; -import org.drools.WorkingMemory; -import org.drools.compiler.DrlParser; -import org.drools.compiler.DroolsParserException; -import org.drools.compiler.PackageBuilder; -import org.drools.lang.descr.PackageDescr; -import org.drools.reteoo.RuleBaseImpl; -import org.drools.rule.InvalidPatternException; -import org.drools.rule.Package; - -import com.sample.benchmark.models.Account; - -/** - * @author Peter Lin - * - */ -public class RuleSetPerformance extends TestCase { - public RuleSetPerformance() { - super(); - } - - public void setUp() { - - } - - public void tearDown() { - - } - - private static RuleBase readRule(String file) throws IOException, DroolsParserException, RuleIntegrationException, PackageIntegrationException, InvalidPatternException { - //read in the source - Reader reader = - new InputStreamReader( - RuleSetPerformance.class.getResourceAsStream( file ) ); - DrlParser parser = new DrlParser(); - PackageDescr packageDescr = parser.parse( reader ); - - //pre build the package - PackageBuilder builder = new PackageBuilder(); - builder.addPackage( packageDescr ); - Package pkg = builder.getPackage(); - - //add the package to a rulebase - RuleBaseImpl ruleBase = new RuleBaseImpl(); - ruleBase.addPackage( pkg ); - return ruleBase; - } - - /** - * test the performance with 50 facts and 5 rules. The test measures - * the load, assert and fire time. - */ - public void testFiveRuleFire() { - try { - int factCount = 50000; - String file = "5_rules.drl"; - int loop = 5; - long totalload = 0; - long totalassert = 0; - long totalfire = 0; - for (int c=0; c < loop; c++) { - long loadStart = System.currentTimeMillis(); - RuleBase ruleBase = readRule(file); - long loadEnd = System.currentTimeMillis(); - long loadet = loadEnd - loadStart; - totalload += loadet; - System.out.println("time to load " + file + - " " + loadet + "ms"); - WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - ArrayList objects = new ArrayList(); - // create the objects - for (int idx=0; idx < factCount; idx++) { - Account acc = new Account(); - acc.setAccountId("acc"+idx); - acc.setTitle("mr"); - acc.setStatus("standard"); - objects.add(acc); - } - Iterator itr = objects.iterator(); - long assertStart = System.currentTimeMillis(); - while( itr.hasNext() ) { - workingMemory.assertObject(itr.next()); - } - long assertEnd = System.currentTimeMillis(); - long assertet = assertEnd - assertStart; - totalassert += assertet; - System.out.println("time to assert " + assertet + - " ms"); - long fireStart = System.currentTimeMillis(); - workingMemory.fireAllRules(); - long fireEnd = System.currentTimeMillis(); - long fireet = fireEnd - fireStart; - totalfire += fireet; - System.out.println("time to fireAllRules " + fireet + - " ms"); - workingMemory.dispose(); - } - System.out.println(file); - System.out.println("number of objects asserted " + factCount); - System.out.println("average load " + (totalload/loop) + " ms"); - System.out.println("average assert " + (totalassert/loop) + " ms"); - System.out.println("average fire " + (totalfire/loop) + " ms"); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * - * - */ - public void testFiftyRuleFire() { - try { - int factCount = 50000; - String file = "50_rules.drl"; - int loop = 5; - long totalload = 0; - long totalassert = 0; - long totalfire = 0; - for (int c=0; c < loop; c++) { - long loadStart = System.currentTimeMillis(); - RuleBase ruleBase = readRule(file); - long loadEnd = System.currentTimeMillis(); - long loadet = loadEnd - loadStart; - totalload += loadet; - System.out.println("time to load " + file + - " " + loadet + "ms"); - WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - ArrayList objects = new ArrayList(); - // create the objects - for (int idx=0; idx < factCount; idx++) { - Account acc = new Account(); - acc.setAccountId("acc"+idx); - acc.setTitle("mr"); - acc.setStatus("standard"); - objects.add(acc); - } - Iterator itr = objects.iterator(); - long assertStart = System.currentTimeMillis(); - while( itr.hasNext() ) { - workingMemory.assertObject(itr.next()); - } - long assertEnd = System.currentTimeMillis(); - long assertet = assertEnd - assertStart; - totalassert += assertet; - System.out.println("time to assert " + assertet + - " ms"); - long fireStart = System.currentTimeMillis(); - workingMemory.fireAllRules(); - long fireEnd = System.currentTimeMillis(); - long fireet = fireEnd - fireStart; - totalfire += fireet; - System.out.println("time to fireAllRules " + fireet + - " ms"); - workingMemory.dispose(); - } - System.out.println(file); - System.out.println("number of objects asserted " + factCount); - System.out.println("average load " + (totalload/loop) + " ms"); - System.out.println("average assert " + (totalassert/loop) + " ms"); - System.out.println("average fire " + (totalfire/loop) + " ms"); - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * - * - */ - public void testFiveHundredRuleFire() { - try { - int factCount = 50000; - String file = "500_rules.drl"; - int loop = 5; - long totalload = 0; - long totalassert = 0; - long totalfire = 0; - for (int c=0; c < loop; c++) { - long loadStart = System.currentTimeMillis(); - RuleBase ruleBase = readRule(file); - long loadEnd = System.currentTimeMillis(); - long loadet = loadEnd - loadStart; - totalload += loadet; - System.out.println("time to load " + file + - " " + loadet + "ms"); - WorkingMemory workingMemory = ruleBase.newWorkingMemory(); - ArrayList objects = new ArrayList(); - // create the objects - for (int idx=0; idx < factCount; idx++) { - Account acc = new Account(); - acc.setAccountId("acc"+idx); - acc.setTitle("mr"); - acc.setStatus("standard"); - objects.add(acc); - } - Iterator itr = objects.iterator(); - long assertStart = System.currentTimeMillis(); - while( itr.hasNext() ) { - workingMemory.assertObject(itr.next()); - } - long assertEnd = System.currentTimeMillis(); - long assertet = assertEnd - assertStart; - totalassert += assertet; - System.out.println("time to assert " + assertet + - " ms"); - long fireStart = System.currentTimeMillis(); - workingMemory.fireAllRules(); - long fireEnd = System.currentTimeMillis(); - long fireet = fireEnd - fireStart; - totalfire += fireet; - System.out.println("time to fireAllRules " + fireet + - " ms"); - workingMemory.dispose(); - } - System.out.println(file); - System.out.println("number of objects asserted " + factCount); - System.out.println("average load " + (totalload/loop) + " ms"); - System.out.println("average assert " + (totalassert/loop) + " ms"); - System.out.println("average fire " + (totalfire/loop) + " ms"); - } catch (Exception e) { - e.printStackTrace(); - } - } -} Copied: labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformanceTest.java (from rev 3872, labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformance.java) =================================================================== --- labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformance.java 2006-04-21 01:37:31 UTC (rev 3872) +++ labs/jbossrules/trunk/drools-examples/src/test/java/com/sample/benchmark/RuleSetPerformanceTest.java 2006-04-21 01:58:21 UTC (rev 3875) @@ -0,0 +1,237 @@ +package com.sample.benchmark; + +import junit.framework.TestCase; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.Reader; +import java.util.ArrayList; +import java.util.Iterator; + +import org.drools.PackageIntegrationException; +import org.drools.RuleBase; +import org.drools.RuleIntegrationException; +import org.drools.WorkingMemory; +import org.drools.compiler.DrlParser; +import org.drools.compiler.DroolsParserException; +import org.drools.compiler.PackageBuilder; +import org.drools.lang.descr.PackageDescr; +import org.drools.reteoo.RuleBaseImpl; +import org.drools.rule.InvalidPatternException; +import org.drools.rule.Package; + +import com.sample.benchmark.models.Account; + +/** + * @author Peter Lin + * + */ +public class RuleSetPerformanceTest extends TestCase { + public RuleSetPerformanceTest() { + super(); + } + + public void setUp() { + + } + + public void tearDown() { + + } + + private static RuleBase readRule(String file) throws IOException, DroolsParserException, RuleIntegrationException, PackageIntegrationException, InvalidPatternException { + //read in the source + Reader reader = + new InputStreamReader( + RuleSetPerformanceTest.class.getResourceAsStream( file ) ); + DrlParser parser = new DrlParser(); + PackageDescr packageDescr = parser.parse( reader ); + + //pre build the package + PackageBuilder builder = new PackageBuilder(); + builder.addPackage( packageDescr ); + Package pkg = builder.getPackage(); + + //add the package to a rulebase + RuleBaseImpl ruleBase = new RuleBaseImpl(); + ruleBase.addPackage( pkg ); + return ruleBase; + } + + /** + * test the performance with 50 facts and 5 rules. The test measures + * the load, assert and fire time. + */ + public void testFiveRuleFire() { + try { + int factCount = 50000; + String file = "5_rules.drl"; + int loop = 5; + long totalload = 0; + long totalassert = 0; + long totalfire = 0; + for (int c=0; c < loop; c++) { + long loadStart = System.currentTimeMillis(); + RuleBase ruleBase = readRule(file); + long loadEnd = System.currentTimeMillis(); + long loadet = loadEnd - loadStart; + totalload += loadet; + System.out.println("time to load " + file + + " " + loadet + "ms"); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + ArrayList objects = new ArrayList(); + // create the objects + for (int idx=0; idx < factCount; idx++) { + Account acc = new Account(); + acc.setAccountId("acc"+idx); + acc.setTitle("mr"); + acc.setStatus("standard"); + objects.add(acc); + } + Iterator itr = objects.iterator(); + long assertStart = System.currentTimeMillis(); + while( itr.hasNext() ) { + workingMemory.assertObject(itr.next()); + } + long assertEnd = System.currentTimeMillis(); + long assertet = assertEnd - assertStart; + totalassert += assertet; + System.out.println("time to assert " + assertet + + " ms"); + long fireStart = System.currentTimeMillis(); + workingMemory.fireAllRules(); + long fireEnd = System.currentTimeMillis(); + long fireet = fireEnd - fireStart; + totalfire += fireet; + System.out.println("time to fireAllRules " + fireet + + " ms"); + workingMemory.dispose(); + } + System.out.println(file); + System.out.println("number of objects asserted " + factCount); + System.out.println("average load " + (totalload/loop) + " ms"); + System.out.println("average assert " + (totalassert/loop) + " ms"); + System.out.println("average fire " + (totalfire/loop) + " ms"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * + * + */ + public void testFiftyRuleFire() { + try { + int factCount = 50000; + String file = "50_rules.drl"; + int loop = 5; + long totalload = 0; + long totalassert = 0; + long totalfire = 0; + for (int c=0; c < loop; c++) { + long loadStart = System.currentTimeMillis(); + RuleBase ruleBase = readRule(file); + long loadEnd = System.currentTimeMillis(); + long loadet = loadEnd - loadStart; + totalload += loadet; + System.out.println("time to load " + file + + " " + loadet + "ms"); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + ArrayList objects = new ArrayList(); + // create the objects + for (int idx=0; idx < factCount; idx++) { + Account acc = new Account(); + acc.setAccountId("acc"+idx); + acc.setTitle("mr"); + acc.setStatus("standard"); + objects.add(acc); + } + Iterator itr = objects.iterator(); + long assertStart = System.currentTimeMillis(); + while( itr.hasNext() ) { + workingMemory.assertObject(itr.next()); + } + long assertEnd = System.currentTimeMillis(); + long assertet = assertEnd - assertStart; + totalassert += assertet; + System.out.println("time to assert " + assertet + + " ms"); + long fireStart = System.currentTimeMillis(); + workingMemory.fireAllRules(); + long fireEnd = System.currentTimeMillis(); + long fireet = fireEnd - fireStart; + totalfire += fireet; + System.out.println("time to fireAllRules " + fireet + + " ms"); + workingMemory.dispose(); + } + System.out.println(file); + System.out.println("number of objects asserted " + factCount); + System.out.println("average load " + (totalload/loop) + " ms"); + System.out.println("average assert " + (totalassert/loop) + " ms"); + System.out.println("average fire " + (totalfire/loop) + " ms"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * + * + */ + public void testFiveHundredRuleFire() { + try { + int factCount = 50000; + String file = "500_rules.drl"; + int loop = 5; + long totalload = 0; + long totalassert = 0; + long totalfire = 0; + for (int c=0; c < loop; c++) { + long loadStart = System.currentTimeMillis(); + RuleBase ruleBase = readRule(file); + long loadEnd = System.currentTimeMillis(); + long loadet = loadEnd - loadStart; + totalload += loadet; + System.out.println("time to load " + file + + " " + loadet + "ms"); + WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + ArrayList objects = new ArrayList(); + // create the objects + for (int idx=0; idx < factCount; idx++) { + Account acc = new Account(); + acc.setAccountId("acc"+idx); + acc.setTitle("mr"); + acc.setStatus("standard"); + objects.add(acc); + } + Iterator itr = objects.iterator(); + long assertStart = System.currentTimeMillis(); + while( itr.hasNext() ) { + workingMemory.assertObject(itr.next()); + } + long assertEnd = System.currentTimeMillis(); + long assertet = assertEnd - assertStart; + totalassert += assertet; + System.out.println("time to assert " + assertet + + " ms"); + long fireStart = System.currentTimeMillis(); + workingMemory.fireAllRules(); + long fireEnd = System.currentTimeMillis(); + long fireet = fireEnd - fireStart; + totalfire += fireet; + System.out.println("time to fireAllRules " + fireet + + " ms"); + workingMemory.dispose(); + } + System.out.println(file); + System.out.println("number of objects asserted " + factCount); + System.out.println("average load " + (totalload/loop) + " ms"); + System.out.println("average assert " + (totalassert/loop) + " ms"); + System.out.println("average fire " + (totalfire/loop) + " ms"); + } catch (Exception e) { + e.printStackTrace(); + } + } +} Copied: labs/jbossrules/trunk/drools-examples/src/test/resources/com (from rev 3872, labs/jbossrules/trunk/drools-examples/src/resources/com) |