[Checkins] SVN: zc.zeoinputlog/branches/replay/src/zc/zeoinputlog/replay.py Print interim stats

Jim Fulton jim at zope.com
Wed Oct 7 18:47:08 EDT 2009


Log message for revision 104900:
  Print interim stats
  

Changed:
  U   zc.zeoinputlog/branches/replay/src/zc/zeoinputlog/replay.py

-=-
Modified: zc.zeoinputlog/branches/replay/src/zc/zeoinputlog/replay.py
===================================================================
--- zc.zeoinputlog/branches/replay/src/zc/zeoinputlog/replay.py	2009-10-07 22:10:25 UTC (rev 104899)
+++ zc.zeoinputlog/branches/replay/src/zc/zeoinputlog/replay.py	2009-10-07 22:47:08 UTC (rev 104900)
@@ -394,6 +394,18 @@
     addr = addr.split(':')
     return addr[0], int(addr[1])
 
+def print_times(last_times, times, label):
+    print 'Time per op (milliseconds)', label
+    times = times.copy()
+    for op in sorted(times):
+        n, t = handlers.times[op]
+        last = last_times.get(op)
+        if last:
+            n -= last[0]
+            t -= last[1]
+        print "%20s %10d %10.3f" % (op, n, t*1000/n)
+    return times
+
 def main(args=None):
     """Usage: script address log source
 
@@ -445,8 +457,15 @@
     firsttt = lasttt = log.start()
     work = lastwork = 0
     speed = speed1 = None
+    last_times = {}
     for t in Transactions(source):
+
+        if nt and (nt%1000 == 0):
+            last_times = print_times(last_times, handlers.times,
+                                     "after %s transactions" % nt)
+
         nt += 1
+
         tt = ZODB.TimeStamp.TimeStamp(t.id).timeTime()
         pending = handlers.calls - handlers.replies - handlers.abandoned
         now = time.time()
@@ -495,7 +514,8 @@
         n, t = handlers.times[op]
         print 'err', op, n, t/n
 
-    for op in sorted(handlers.times):
-        n, t = handlers.times[op]
-        print op, n, t/n
+    print_times(last_times, handlers.times,
+                "after %s transactions" % nt)
 
+    print_times({}, handlers.times, "overall")
+



More information about the checkins mailing list