[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