[CalendarServer-changes] [11834] CalendarServer/branches/users/cdaboo/performance-tweaks/txdav/ common/datastore/sql.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:16:17 PDT 2014


Revision: 11834
          http://trac.calendarserver.org//changeset/11834
Author:   cdaboo at apple.com
Date:     2013-10-28 10:21:24 -0700 (Mon, 28 Oct 2013)
Log Message:
-----------
Add more timing information to sqlstats.

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/performance-tweaks/txdav/common/datastore/sql.py

Modified: CalendarServer/branches/users/cdaboo/performance-tweaks/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/cdaboo/performance-tweaks/txdav/common/datastore/sql.py	2013-10-28 17:20:30 UTC (rev 11833)
+++ CalendarServer/branches/users/cdaboo/performance-tweaks/txdav/common/datastore/sql.py	2013-10-28 17:21:24 UTC (rev 11834)
@@ -314,6 +314,7 @@
         self.label = label
         self.logFileName = logFileName
         self.statements = []
+        self.startTime = time.time()
 
 
     def startStatement(self, sql, args):
@@ -329,7 +330,7 @@
         """
         args = ["%s" % (arg,) for arg in args]
         args = [((arg[:10] + "...") if len(arg) > 40 else arg) for arg in args]
-        self.statements.append(["%s %s" % (sql, args,), 0, 0])
+        self.statements.append(["%s %s" % (sql, args,), 0, 0, 0])
         return len(self.statements) - 1, time.time()
 
 
@@ -343,8 +344,10 @@
         @type rows: C{int}
         """
         index, tstamp = context
+        t = time.time()
         self.statements[index][1] = len(rows) if rows else 0
-        self.statements[index][2] = time.time() - tstamp
+        self.statements[index][2] = t - tstamp
+        self.statements[index][3] = t
 
 
     def printReport(self):
@@ -364,11 +367,16 @@
         toFile.write("Total statements: %d\n" % (total_statements,))
         toFile.write("Total rows: %d\n" % (total_rows,))
         toFile.write("Total time (ms): %.3f\n" % (total_time,))
-        for sql, rows, t in self.statements:
+        t_last_end = self.startTime
+        for sql, rows, t_taken, t_end in self.statements:
             toFile.write("\n")
             toFile.write("SQL: %s\n" % (sql,))
             toFile.write("Rows: %s\n" % (rows,))
-            toFile.write("Time (ms): %.3f\n" % (t * 1000.0,))
+            toFile.write("Time (ms): %.3f\n" % (t_taken * 1000.0,))
+            toFile.write("Idle (ms): %.3f\n" % ((t_end - t_taken - t_last_end) * 1000.0,))
+            toFile.write("Elapsed (ms): %.3f\n" % ((t_end - self.startTime) * 1000.0,))
+            t_last_end = t_end
+        toFile.write("Commit (ms): %.3f\n" % ((time.time() - t_last_end) * 1000.0,))
         toFile.write("***\n\n")
 
         if self.logFileName:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/e744d4a3/attachment.html>


More information about the calendarserver-changes mailing list