[jboss-svn-commits] JBL Code SVN: r27140 - in labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main: java/org/drools/benchmark/process and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 25 19:08:06 EDT 2009


Author: KrisVerlaenen
Date: 2009-06-25 19:08:06 -0400 (Thu, 25 Jun 2009)
New Revision: 27140

Added:
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/process/
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/process/PerformanceTest.java
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/process/
   labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/process/empty.rf
Log:
 - added simple Drools Flow performance test

Added: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/process/PerformanceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/process/PerformanceTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/benchmark/process/PerformanceTest.java	2009-06-25 23:08:06 UTC (rev 27140)
@@ -0,0 +1,104 @@
+package org.drools.benchmark.process;
+
+//import javax.persistence.EntityManagerFactory;
+//import javax.persistence.Persistence;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+//import org.drools.persistence.jpa.JPAKnowledgeService;
+//import org.drools.runtime.Environment;
+//import org.drools.runtime.EnvironmentName;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+//import bitronix.tm.resource.jdbc.PoolingDataSource;
+
+public class PerformanceTest {
+
+	public static void main(String[] args) throws Exception {
+		// Normal process execution
+		System.out.println("********************************");
+		System.out.println("*** Normal process execution ***");
+		System.out.println("********************************");
+		System.out.println();
+		System.out.println("Building knowledge base ... ");
+		KnowledgeBase kbase = readKnowledgeBase();
+		System.out.println("Initializing session ... ");
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		// start a new process instance
+		for (int i = 0; i < 100; i++) {
+			ksession.startProcess("com.sample.empty", null);
+		}
+		System.out.println("Starting ... ");
+		
+		Thread.sleep(1000);
+		long start = System.nanoTime();
+		for (int i = 0; i < 10000; i++) {
+			ksession.startProcess("com.sample.empty", null);
+		}
+		long end = System.nanoTime() - start;
+		System.out.println("Total time = " + (end / 1000000) + "ms");
+		ksession.dispose();
+	}
+
+//	public static void main(String[] args) throws Exception {
+//		// Persistent process execution
+//		System.out.println("************************************");
+//		System.out.println("*** Persistent process execution ***");
+//		System.out.println("************************************");
+//		System.out.println();
+//		System.out.println("Initializing database");
+//		PoolingDataSource ds1 = new PoolingDataSource();
+//        ds1.setUniqueName("jdbc/testDS1");
+//        ds1.setClassName("org.h2.jdbcx.JdbcDataSource");
+//        ds1.setMaxPoolSize(3);
+//        ds1.setAllowLocalTransactions(true);
+//        ds1.getDriverProperties().put("user", "sa");
+//        ds1.getDriverProperties().put("password", "sasa");
+//        ds1.getDriverProperties().put("URL", "jdbc:h2:mem:mydb");
+//        ds1.init();
+//        EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.drools.persistence.jpa");
+//
+//		System.out.println("Building knowledge base ... ");
+//		KnowledgeBase kbase = readKnowledgeBase();
+//		System.out.println("Initializing session ... ");
+//		Environment env = KnowledgeBaseFactory.newEnvironment();
+//        env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
+//        StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null, env);
+//		// start a new process instance
+//		for (int i = 0; i < 100; i++) {
+//			ksession.startProcess("com.sample.empty", null);
+//		}
+//		System.out.println("Starting ... ");
+//		
+//		Thread.sleep(1000);
+//		long start = System.nanoTime();
+//		for (int i = 0; i < 10000; i++) {
+//			ksession.startProcess("com.sample.empty", null);
+//		}
+//		long end = System.nanoTime() - start;
+//		System.out.println("Total time = " + (end / 1000000) + "ms");
+//		ksession.dispose();
+//	}
+	
+	private static KnowledgeBase readKnowledgeBase() throws Exception {
+		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+		kbuilder.add(ResourceFactory.newClassPathResource("empty.rf", PerformanceTest.class), ResourceType.DRF);
+		KnowledgeBuilderErrors errors = kbuilder.getErrors();
+		if (errors.size() > 0) {
+			for (KnowledgeBuilderError error: errors) {
+				System.err.println(error);
+			}
+			throw new IllegalArgumentException("Could not parse knowledge.");
+		}
+		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+		return kbase;
+	}
+	
+}

Added: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/process/empty.rf
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/process/empty.rf	                        (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/benchmark/process/empty.rf	2009-06-25 23:08:06 UTC (rev 27140)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<process xmlns="http://drools.org/drools-5.0/process"
+         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+         xs:schemaLocation="http://drools.org/drools-5.0/process drools-processes-5.0.xsd"
+         type="RuleFlow" name="ruleflow" id="com.sample.empty" package-name="com.sample" >
+
+  <header>
+  </header>
+
+  <nodes>
+    <end id="2" name="End" x="96" y="16" width="48" height="48" />
+    <start id="1" name="Start" x="16" y="16" width="48" height="48" />
+  </nodes>
+
+  <connections>
+    <connection from="1" to="2" />
+  </connections>
+
+</process>
\ No newline at end of file




More information about the jboss-svn-commits mailing list