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 2012/01/05 17:13:53 UTC

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

Author: andy
Date: Thu Jan  5 16:13:53 2012
New Revision: 1227665

URL: http://svn.apache.org/viewvc?rev=1227665&view=rev
Log:
local execution ; CSV file output

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/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=1227665&r1=1227664&r2=1227665&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 Jan  5 16:13:53 2012
@@ -24,6 +24,7 @@ import com.hp.hpl.jena.util.FileManager
 import java.text.DateFormat
 import java.text.SimpleDateFormat
 import org.openjena.atlas.logging.Log
+import java.io.FileOutputStream
 
 // TODO:
 //   Not just SELECT queries
@@ -74,7 +75,11 @@ object PerfMain {
       println("Collect results")
       enact(new ActionProcessorCollector(collector, monitor), manifest.actionTimedRun)
       //report(reporter, collector)
-      report(new ReporterAgg(), collector)
+      println()
+      report(new ReporterAgg(System.out), collector)
+      val file = new FileOutputStream("results.csv")
+      report(new ReporterAgg(file), collector)
+      file.close
     }
     
     println("Finish @ "+now())

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=1227665&r1=1227664&r2=1227665&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 Jan  5 16:13:53 2012
@@ -19,8 +19,12 @@
 package org.apache.jena.perf
 import java.util.Date
 import scala.collection.mutable.ArrayBuffer
-import java.util.concurrent.atomic.AtomicInteger 
+import java.util.concurrent.atomic.AtomicInteger
 import scala.collection.mutable.{Map => MMap}
+import java.io.OutputStream
+import org.openjena.atlas.lib.FileOps
+import org.openjena.atlas.io.IO
+import java.io.BufferedWriter
 
 /** A collection of commonly used implementations of PerfUnit interfaces */  
 
@@ -134,11 +138,14 @@ class ReporterPrint extends Reporter {
   }
 }
 
-class ReporterAgg extends Reporter {
+class ReporterAgg(stream:OutputStream) extends Reporter {
   case class Summary(var num:Int, var total:Long, var min:Long, var max:Long) 
   
   // Need unique id for an action.
   def report(collector: Collector): Unit = {
+    
+    val out = new BufferedWriter(IO.asUTF8(stream))
+    
     type key = String
     var names = List[key]()
     val mb = MMap[key, Summary]()
@@ -157,18 +164,19 @@ class ReporterAgg extends Reporter {
       s.max = if ( x > s.max ) x else s.max
     }
     
-    println()
     // CSV :-)
-    printf("Query           , Average ms , Number , Total ms ,  Min ms ,  Max ms\n")
+    out.write("Query           , Average ms , Number , Total ms ,  Min ms ,  Max ms\n")
     
     // Sort : really needs an id.
     
     names.foreach( name => {
       val summary = mb.get(name).get
       val avg = if ( summary.num == 0 ) 0.0 else (summary.total / summary.num.asInstanceOf[Double])
-      printf("%-15s , %10.2f , %6d ,",  name, avg, summary.num)
-      printf(" %8d , %7d , %7d\n",      summary.total, summary.min, summary.max)  
+      out.write("%-15s , %10.2f , %6d ,".format(name, avg, summary.num))
+      out.write(" %8d , %7d , %7d\n".format(summary.total, summary.min, summary.max))  
     })
-    println()
+    out.write("\n")
+    out.flush() ;
+    
   }
 }
\ No newline at end of file