← Back to team overview

ayatana-commits team mailing list archive

[Branch ~dbusmenu-team/dbusmenu/trunk] Rev 63: Dbusmenu Bench tool average support.

 

Merge authors:
  Aurélien Gâteau (agateau)
------------------------------------------------------------
revno: 63 [merge]
committer: Ted Gould <ted@xxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-02-04 12:03:36 -0800
message:
  Dbusmenu Bench tool average support.
modified:
  tools/dbusmenu-bench


--
lp:dbusmenu
https://code.launchpad.net/~dbusmenu-team/dbusmenu/trunk

Your team ayatana-commits is subscribed to branch lp:dbusmenu.
To unsubscribe from this branch go to https://code.launchpad.net/~dbusmenu-team/dbusmenu/trunk/+edit-subscription.
=== modified file 'tools/dbusmenu-bench'
--- tools/dbusmenu-bench	2010-02-04 19:36:16 +0000
+++ tools/dbusmenu-bench	2010-02-04 20:03:36 +0000
@@ -27,6 +27,7 @@
 License version 3 and version 2.1 along with this program.  If not, see 
 <http://www.gnu.org/licenses/>
 """
+import itertools
 import time
 import sys
 from optparse import OptionParser
@@ -38,6 +39,10 @@
 DBUS_SERVICE = "org.dbusmenu.test"
 DBUS_PATH = "/MenuBar"
 
+PROBE_GET_LAYOUT     = "GetLayout"
+PROBE_GET_PROPERTIES = "GetProperties"
+PROBE_GET_CHILDREN   = "GetChildren"
+PROBES = PROBE_GET_LAYOUT, PROBE_GET_PROPERTIES, PROBE_GET_CHILDREN
 
 class Chrono(object):
     def __init__(self):
@@ -99,6 +104,12 @@
 
     return times
 
+def create_timing_dict():
+    return dict(zip(PROBES, itertools.repeat(0)))
+
+def print_probe(prefix, name, value, timestamp):
+    value = int(value * 1000000)
+    print "%(prefix)s.%(name)s:%(value)d@%(timestamp)d" % locals()
 
 def main():
     parser = OptionParser(usage = "%prog [options]")
@@ -118,14 +129,25 @@
         run_test_sequence(menu, dump=True)
         return
 
-    cumulated_timings = dict()
+    cumulated_timings = create_timing_dict()
+    min_timings = create_timing_dict()
+    max_timings = create_timing_dict()
     for x in range(options.count):
         timings = run_test_sequence(menu)
         for name, timing in timings.items():
-            cumulated_timings[name] = cumulated_timings.get(name, 0) + timing
+            cumulated_timings[name] += timing
+            if min_timings[name] == 0 or min_timings[name] > timing:
+                min_timings[name] = timing
+            if max_timings[name] < timing:
+                max_timings[name] = timing
 
+    timestamp = int(time.time())
     for name, timing in cumulated_timings.items():
-        print name, timing / options.count
+        print_probe("average", name, timing / options.count, timestamp)
+    for name, timing in min_timings.items():
+        print_probe("min", name, timing, timestamp)
+    for name, timing in max_timings.items():
+        print_probe("max", name, timing, timestamp)
 
     return 0