[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