You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2011/10/06 16:42:42 UTC

svn commit: r1179651 - in /incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf: PerfMain.scala PerfUnit.scala PerfUnitLib.scala

Author: andy
Date: Thu Oct  6 14:42:41 2011
New Revision: 1179651

URL: http://svn.apache.org/viewvc?rev=1179651&view=rev
Log: (empty)

Modified:
    incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfMain.scala
    incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnit.scala
    incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnitLib.scala

Modified: incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfMain.scala
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfMain.scala?rev=1179651&r1=1179650&r2=1179651&view=diff
==============================================================================
--- incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfMain.scala (original)
+++ incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfMain.scala Thu Oct  6 14:42:41 2011
@@ -33,8 +33,8 @@ object PerfMain {
 
     val reporter = new ReporterPrint()
     
-    if ( false )
-        enact(new ActionProcessorPrint(), manifest.build)
+    if ( true )
+      enact(new ActionProcessorPrint(), manifest)
     
     //val procMon = new ActionProcessorMonitor(proc)
 
@@ -53,10 +53,16 @@ object PerfMain {
   
 
   // --- Performing
-  def enact(proc:ActionProcessor, action:Action): Unit = {
-    val executor = new ActionExecutor(proc)
-    executor.exec(action)
+  def enact(proc:ActionVisitor, manifest:ActionBuilderManifest): Unit = {
+    println("-- Warmup")
+    enact(proc, manifest.actionWarmUp)
+    println("-- Main run")
+    enact(proc, manifest.actionTimedRun)
   }
+  
+  
+  def enact(proc:ActionVisitor, action:Action): Unit = action.visit(proc)
+
   // ---- Reporting
   def report(reporter: Reporter, collector: Collector): Unit = reporter.report(collector)
   

Modified: incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnit.scala
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnit.scala?rev=1179651&r1=1179650&r2=1179651&view=diff
==============================================================================
--- incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnit.scala (original)
+++ incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnit.scala Thu Oct  6 14:42:41 2011
@@ -2,6 +2,8 @@ package org.apache.jena.perf
 import java.util.Date
 import java.util.concurrent.atomic.AtomicInteger
 
+/** Define the abstractions that go to make up this performance framework */
+
 class PerfUnit {
 
 }
@@ -9,7 +11,17 @@ class PerfUnit {
 //---- Actions
 
 sealed abstract class Action {
-    val name:String
+  val name: String
+  def visit(visitor: ActionVisitor) = {
+    visitor.beginVisit(this)
+    this match {
+      case a1: ActionStep =>
+        visitor.visit(a1)
+      case a2: ActionN =>
+        visitor.visit(a2)
+    }
+    visitor.endVisit(this)
+  }
 }
 
 class ActionN(val actions:Seq[Action]) extends Action {
@@ -22,24 +34,11 @@ abstract class ActionStep extends Action
   def enact(): Outcome
 }
 
-trait ActionProcessor {
-  def startAction(action:Action) : Unit = {}
-  def exec(action:ActionStep) : Unit
-  def exec(action:ActionN) : Unit = { }
-  def finishAction(action:Action) : Unit = {}
-}
-
-class ActionExecutor(runner:ActionProcessor) {
-  def exec(action:Action):Unit = {
-    runner.startAction(action)
-    action match {
-      case a:ActionStep => 
-        runner.exec(a)
-      case actions:ActionN =>
-        actions.actions.foreach(a => exec(a))
-    }
-    runner.finishAction(action)
-  }
+trait ActionVisitor {
+  def beginVisit(action:Action) : Unit = { }
+  def visit(action:ActionStep) : Unit
+  def visit(action:ActionN) : Unit     = action.actions.foreach( _.visit(this) )  
+  def endVisit(action:Action) : Unit   = { }
 }
 
 // ---- Reporter

Modified: incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnitLib.scala
URL: http://svn.apache.org/viewvc/incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnitLib.scala?rev=1179651&r1=1179650&r2=1179651&view=diff
==============================================================================
--- incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnitLib.scala (original)
+++ incubator/jena/Experimental/JenaPerf/trunk/src/main/scala/org/apache/jena/perf/PerfUnitLib.scala Thu Oct  6 14:42:41 2011
@@ -40,16 +40,17 @@ class Collector {
   }
 }
 
-// ---- Action Processors
+// ---- Action Visitors
 
-class ActionProcessorEnact extends ActionProcessor {
-  def exec(action:ActionStep) : Unit = action.enact()
+object ActionExecutor extends ActionVisitor {
+  def visit(action:ActionStep) : Unit  = action.enact()
+  //def visit(action:ActionN) : Unit     = action.actions.foreach( _.visit(this) )
 }
 
-class ActionProcessorCollector(collector:Collector, monitor:ResultMonitor) extends ActionProcessor {
+class ActionProcessorCollector(collector:Collector, monitor:ResultMonitor) extends ActionVisitor {
   val counter = new AtomicInteger(0)
 
-  def exec(action:ActionStep) : Unit = {
+  def visit(action:ActionStep) : Unit  = {
     val id = counter.incrementAndGet()
     val start = System.currentTimeMillis()
     
@@ -69,24 +70,28 @@ object actionMonitorPrint extends Result
 }
 
 
-class ActionProcessorPrint extends ActionProcessor {
-  def exec(action:ActionStep) : Unit = println(action)
-}
-
-class ActionProcessorPrintAnd(proc:ActionProcessor) extends ActionProcessor {
-  def exec(action:ActionStep) : Unit = { println(action) ; proc.exec(action) ; }
+class ActionProcessorPrint extends ActionVisitor {
+  var indent = ""
+  override def visit(action:ActionN)    : Unit = {
+    val indent0 = indent ;
+    indent = indent + "  "
+    action.actions.foreach( _.visit(this) )
+    indent = indent0
+  }
+    
+  override def visit(action:ActionStep) : Unit = { print(indent) ; println(action) }
 }
 
-class ActionProcessorWrapper(proc:ActionProcessor) extends ActionProcessor {
-  override def startAction(action:Action) : Unit    = { proc.startAction(action) }
-  override def exec(action:ActionStep) : Unit       = { proc.exec(action) }
-  override def exec(action:ActionN) : Unit          = { proc.exec(action) }
-  override def finishAction(action:Action) : Unit   = { proc.finishAction(action) }
+class ActionVisitorWrapper(proc:ActionVisitor) extends ActionVisitor {
+  override def beginVisit(action:Action) : Unit     = { proc.beginVisit(action) }
+  override def visit(action:ActionStep) : Unit      = { proc.visit(action) }
+  override def visit(action:ActionN) : Unit         = { proc.visit(action) }
+  override def endVisit(action:Action) : Unit       = { proc.endVisit(action) }
 }
 
-class ActionProcessorMonitor(proc:ActionProcessor) extends ActionProcessorWrapper(proc) {
-  override def startAction(action:Action) : Unit    = { println("> "+action.name) ; super.startAction(action) }
-  override def finishAction(action:Action) : Unit   = { super.finishAction(action) ; println("< "+action.name) ; }
+class ActionProcessorMonitor(proc:ActionVisitor) extends ActionVisitorWrapper(proc) {
+  override def beginVisit(action:Action) : Unit = { println("> "+action.name) ; super.beginVisit(action) }
+  override def endVisit(action:Action) : Unit   = { super.endVisit(action) ; println("< "+action.name) ; }
 }
 
 // ---- Results