[pypy-svn] r60044 - pypy/build/benchmem

xoraxax at codespeak.net xoraxax at codespeak.net
Fri Nov 21 00:37:05 CET 2008


Author: xoraxax
Date: Fri Nov 21 00:37:03 2008
New Revision: 60044

Modified:
   pypy/build/benchmem/report.py
Log:
Add rst table for pauses.

Modified: pypy/build/benchmem/report.py
==============================================================================
--- pypy/build/benchmem/report.py	(original)
+++ pypy/build/benchmem/report.py	Fri Nov 21 00:37:03 2008
@@ -459,16 +459,32 @@
     def getexecutables(self):
         return [r.executable for r in self.resultset.results]
 
+    def run_rest(self, filename="table-pauses.txt"):
+        if not self.resultset:
+            return
+        p = py.path.local(filename)
+        rows = self.generate_table(True)
+        p.write(str(ReSTtable(rows)))
+        print "wrote", p
+
+
     def run(self):
         if not self.resultset:
             return
         tw = py.io.TerminalWriter()
         tw.sep("=", "Pauses between every bytecode")
-        executables = self.getexecutables()
-        row0 = ["benchname", "threshold", "#samples", "#large"]
+        rows = self.generate_table()
+        tw.line(asciitable(rows))
+
+    def generate_table(self, gist_only=False):
+        if gist_only:
+            row0 = ["interpreter", "benchmark", "no. samples", "median", "max"]
+        else:
+            row0 = ["interpreter", "benchmark", "#samples", "median", "max", "#large"]
+
         rows = [row0]
         for result in self.resultset.results:
-            cell0 = "%s-%s" % (result.executable_short, result.benchname)
+            cell0 = [result.executable_short, result.benchname]
             samples = result.lst
             # get all samples that are larger than FACTOR * smallest_sample
             # base_sample = min(samples)
@@ -480,9 +496,12 @@
             pauses = [sample for sample in samples if sample > threshold]
             pauses.sort()
             pauses.reverse()
-            row = [cell0, threshold, len(samples), len(pauses)] + [str(pause) for pause in pauses]
+            if gist_only:
+                row = cell0 + [len(samples), "%.5f" % median, "%.2f" % max(samples)]
+            else:
+                row = cell0 + [threshold, len(samples), "%.5f" % median, "%.2f" % max(samples), len(pauses)] + [str(pause) for pause in pauses]
             rows.append(row)
-        tw.line(asciitable(rows))
+        return rows
 
     def run_graphic(self, plotter):
         plotter.plot_pausehistogram(self.resultset)
@@ -525,6 +544,7 @@
         BaseTimeOfInterpreters(resultset).run_rest()
         BenchTimeOfInterpreters(resultset).run_rest()
         Appprofiles(resultset).run_rest()
+        Pauses(resultset).run_rest()
 
     #for name, results in reader.name2results.items():
     #    tw.sep("=", name)



More information about the Pypy-commit mailing list