[jboss-svn-commits] JBL Code SVN: r17559 - in labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch: fact/independent and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 4 16:03:37 EST 2008


Author: shabino
Date: 2008-01-04 16:03:37 -0500 (Fri, 04 Jan 2008)
New Revision: 17559

Modified:
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchBenchmark.java
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchParameters.java
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchWrapper.java
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Job.java
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Worker.java
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/function/Helper.java
   labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java
Log:


Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchBenchmark.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchBenchmark.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchBenchmark.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -17,8 +17,10 @@
  */
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import org.drools.FactHandle;
@@ -40,6 +42,10 @@
 		dw = new DispatchWrapper();
 	}
 
+	public DispatchBenchmark(DispatchWrapper dw) throws Exception {
+		this.dw = dw;
+	}
+
 	public void go(int numWorkers, int numJobs) throws Exception {
 
 		DispatchState ds = new DispatchState();
@@ -48,11 +54,13 @@
 
 		WorkerGenerator wg = new WorkerGenerator(100, ds.getCurrentTime());
 
+		Map<FactHandle, WorkerPosition> positions = new HashMap<FactHandle, WorkerPosition>();
+
 		for (int i = 0; i < numWorkers; i++) {
 			Worker w = wg.generateWorker();
 			dw.insert(w);
 			WorkerPosition wp = wg.generateWorkerPosition(w);
-			dw.insert(wp);
+			positions.put(dw.insert(wp), wp);
 		}
 
 		Set<Job> jobs = new HashSet<Job>();
@@ -67,6 +75,36 @@
 
 		dw.fireAllRules();
 
+		// test clock updates
+/*
+		long startClock = System.currentTimeMillis();
+		// 50 clock cycles, 20 min each
+		for (int i = 0; i < 50; i++) {
+			ds.setCurrentTime(new Date(ds.getCurrentTime().getTime() + 1000 * 20));
+			dw.getWM().update(dsfh, ds);
+			dw.getWM().fireAllRules();
+		}
+
+		System.out.println("ClockUpdates:" + (System.currentTimeMillis() - startClock));
+
+		startClock = System.currentTimeMillis();
+		// 50 clock cycles, 20 min each
+		for (int i = 0; i < 10; i++) {
+			for (Map.Entry<FactHandle, WorkerPosition> e : positions.entrySet()) {
+				e.getValue().setLongitude(e.getValue().getLongitude() + 1);
+				e.getValue().setLatitude(e.getValue().getLatitude() + 1);
+				dw.getWM().insert(e.getValue());
+				//dw.getWM().update(e.getKey(), e.getValue());
+			}
+			System.out.println("Now firing rules");
+			dw.getWM().fireAllRules();
+			System.out.println("Just fired rules");
+		}
+
+		System.out.println("PositionUpdates:" + (System.currentTimeMillis() - startClock));
+
+*/
+
 		System.out.println("Inserts:" + dw.wmel.inserts);
 		System.out.println("Retracts:" + dw.wmel.retracts);
 		System.out.println("Updates:" + dw.wmel.updates);
@@ -93,8 +131,11 @@
 				continue;
 			}
 
-			System.out.println("Job:" + j.getJobId() + ":"
-					+ eligibilities.size() + ":"
+			// TEMP for ILOG
+			if (eligibilities.size() == 0)
+				continue;
+
+			System.out.println("Job:" + j.getJobId() + ":" + eligibilities.size() + ":"
 					+ eligibilities.get(0).getDistanceToJobInMiles());
 
 		}
@@ -110,18 +151,26 @@
 			numJobs = new Integer(args[1]);
 		}
 
-		System.out.println("Running benchmark with " + numWorkers
-				+ " workers and " + numJobs + " jobs.");
+		System.out.println("Running benchmark with " + numWorkers + " workers and " + numJobs + " jobs.");
 
 		long startTime = System.currentTimeMillis();
-		
+
 		DispatchBenchmark db = new DispatchBenchmark();
-		
+
 		db.go(numWorkers, numJobs);
-		
-		System.out.println("Completed in "
-				+ (System.currentTimeMillis() - startTime) + "ms");
 
+		System.out.println("Completed in " + (System.currentTimeMillis() - startTime) + "ms");
+
+		System.gc();
+		System.gc();
+		System.gc();
+		System.gc();
+		System.gc();
+
+		long endMem = Runtime.getRuntime().maxMemory() - Runtime.getRuntime().freeMemory();
+
+		System.out.println("PostGC WM Size:" + (endMem));
+
 	}
 
 }

Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchParameters.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchParameters.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchParameters.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -7,6 +7,7 @@
 	//Increase surface area by 25%
 	public final static double INCREMENTAL_SEARCH_RADIUS_MULTIPLIER = Math.sqrt(1.25);
 	
+	
 	public final static int MIN_SCORED_WORKERS = 50;
 	
 }

Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchWrapper.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchWrapper.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/DispatchWrapper.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -40,7 +40,7 @@
 import benchmarks.dispatch.fact.derived.ScoreComponent;
 import benchmarks.dispatch.fact.derived.TopWorkers;
 
-public class DispatchWrapper {
+public class DispatchWrapper implements IDispatchWrapper {
 
 	public DispatchWrapper() throws Exception {
 		createWM();
@@ -72,6 +72,7 @@
 
 		conf.setAssertBehaviour(RuleBaseConfiguration.AssertBehaviour.EQUALITY);
 		conf.setRemoveIdentities(true);
+		
 		conf.setLogicalOverride(RuleBaseConfiguration.LogicalOverride.DISCARD);
 		conf.setMaintainTms(true);
 		conf.setShadowProxy(true);
@@ -112,15 +113,32 @@
 		public long cancels, creates, fireAfter, fireBefore, pops, pushes;
 
 		public Map<String, Integer> fires = new HashMap<String, Integer>();
+		public Map<String, Integer> cancelMap = new HashMap<String, Integer>();
 
 		public void dump() {
+			System.out.println("Fires:");
 			for (Map.Entry<String, Integer> e : fires.entrySet()) {
 				System.out.println(e.getKey() + ":" + e.getValue());
 			}
+			
+			System.out.println("Cancels:");
+			for (Map.Entry<String, Integer> e : cancelMap.entrySet()) {
+				System.out.println(e.getKey() + ":" + e.getValue());
+			}
 		}
 
 		public void activationCancelled(ActivationCancelledEvent event,
 				WorkingMemory workingMemory) {
+	
+			String name = event.getActivation().getRule().getName();
+			Integer current = cancelMap.get(name);
+			
+			//System.out.println("CancelSource:" + event.getSource().toString());
+			
+			if (current == null) {
+				current = new Integer(0);
+			}
+			cancelMap.put(name, ++current);
 			cancels++;
 
 		}
@@ -193,6 +211,11 @@
 
 		List<JobEligibility> eligibilities = new ArrayList<JobEligibility>();
 
+		//TEMP for ILog
+		if (topWorkers == null){
+			return eligibilities;
+		}
+		
 		for (String workerId : topWorkers.getTopWorkers()) {
 			JobEligibility je = new JobEligibility();
 			je.setWorkerId(workerId);

Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Job.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Job.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Job.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -29,7 +29,7 @@
     private Date        startTime;
     private Double      latitude, longitude;
     private VehicleSize vehicleSizeRequired;
-    private Boolean     wrenchRequired;
+    private Boolean     wrenchRequired = new Boolean(false);
     private Integer     numberOfSticksRequired;
     private Integer     numberOfRocksRequired;
 

Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Worker.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Worker.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/fact/independent/Worker.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -29,7 +29,7 @@
     private Date        timeAvailable;
     private Double      currentJobLatitude, currentJobLongitude;
     private VehicleSize vehicleSize;
-    private Boolean     hasWrench;
+    private Boolean     hasWrench = new Boolean(false);
     private Integer     numberOfSticks, numberOfRocks;
 
     public Status getStatus() {

Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/function/Helper.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/function/Helper.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/function/Helper.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -52,7 +52,4 @@
 		}
 	}
 
-	public static Double minutesBetweenDates(Date start, Date end) {
-		return 0D;
-	}
 }

Modified: labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java
===================================================================
--- labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java	2008-01-04 17:29:47 UTC (rev 17558)
+++ labs/jbossrules/contrib/benchmarks/src/java/benchmarks/dispatch/test/TestWorkerEligibility.java	2008-01-04 21:03:37 UTC (rev 17559)
@@ -4,7 +4,7 @@
 import benchmarks.dispatch.fact.independent.VehicleSize;
 
 public class TestWorkerEligibility extends AbstractDispatchTest {
-	public void testWrenchRule() throws Exception {
+	public void testVehicleSizeRule() throws Exception {
 		
 		Couple c = createNeighboringCouple();
 		




More information about the jboss-svn-commits mailing list