[pypy-svn] r58999 - in pypy/build/benchmem: . testing

hpk at codespeak.net hpk at codespeak.net
Sat Oct 11 18:54:30 CEST 2008


Author: hpk
Date: Sat Oct 11 18:54:30 2008
New Revision: 58999

Modified:
   pypy/build/benchmem/report.py
   pypy/build/benchmem/testing/test_benchtool.py
Log:
(xoraxax,hpk) add report for startup time


Modified: pypy/build/benchmem/report.py
==============================================================================
--- pypy/build/benchmem/report.py	(original)
+++ pypy/build/benchmem/report.py	Sat Oct 11 18:54:30 2008
@@ -206,6 +206,31 @@
                 filter(group=HEAP, inv=True).rss)
         tw.line(asciitable(rows))
 
+class BaseTimeOfInterpreters:
+    def __init__(self, resultset):
+        self.resultset = resultset.filter(benchtype="basetime")
+
+    def getexecutables(self):
+        return [r.executable for r in self.resultset.results]
+
+    def run(self):
+        if not self.resultset:
+            return
+        tw = py.io.TerminalWriter()
+        tw.sep("=", "Basetime of interpreters")
+        # result.mintimings -> [(name, timings_dict)]
+        executables = self.getexecutables()
+        row0 = "run real user sys".split()
+        rows = [row0]
+        names = [x[0] for x in self.resultset.results[0].mintimings]
+        for selectname in names:
+            for result in self.resultset.results:
+                for name, timing in result.mintimings:
+                    if name == selectname:
+                        rows.append(["%s-%s" %(result.executable, name), 
+                            timing['real'], timing['user'], timing['sys']])
+        tw.line(asciitable(rows))
+
 if __name__ == "__main__":
     options, args = parser.parse_args()
 
@@ -217,6 +242,7 @@
     CheckpointDetails(resultset).run()
     IncrementalSizePerBench(resultset).run()
     BaseSizeOfInterpreters(resultset).run()
+    BaseTimeOfInterpreters(resultset).run()
     
     if options.gnuplot: 
         Gnuplot(resultset).run()

Modified: pypy/build/benchmem/testing/test_benchtool.py
==============================================================================
--- pypy/build/benchmem/testing/test_benchtool.py	(original)
+++ pypy/build/benchmem/testing/test_benchtool.py	Sat Oct 11 18:54:30 2008
@@ -232,8 +232,8 @@
     assert result2.snapshot.heap_private() - result1.snapshot.heap_private() < 21
     report.CheckpointDetails(resultset).run() # shouldnt do anything
 
-def test_startuptime_half_functional():
-    tmpdir = py.test.ensuretemp("test_startuptime")
+def test_basetime_half_functional():
+    tmpdir = py.test.ensuretemp("test_basetime_half_functional")
     script = py.path.local(runbench.__file__).dirpath("runbench.py")
     benchlog = tmpdir.join("benchlog")
     py.process.cmdexec("%s -e python2.5,python2.5 --benchlog=%s basetime" % (script, benchlog))



More information about the Pypy-commit mailing list