Index: build/android/pylib/utils/time_profile.py |
diff --git a/build/android/pylib/utils/time_profile.py b/build/android/pylib/utils/time_profile.py |
index 45da7ff3af7df607d2938cde9fa8ee2d9fa24e2c..094799c4f2a133fc6d9bbe60e122a4df15823f23 100644 |
--- a/build/android/pylib/utils/time_profile.py |
+++ b/build/android/pylib/utils/time_profile.py |
@@ -9,18 +9,37 @@ import time |
class TimeProfile(object): |
"""Class for simple profiling of action, with logging of cost.""" |
- def __init__(self, description): |
+ def __init__(self, description='operation'): |
self._starttime = None |
+ self._endtime = None |
self._description = description |
self.Start() |
def Start(self): |
self._starttime = time.time() |
+ self._endtime = None |
- def Stop(self): |
- """Stop profiling and dump a log.""" |
- if self._starttime: |
- stoptime = time.time() |
- logging.info('%fsec to perform %s', |
- stoptime - self._starttime, self._description) |
- self._starttime = None |
+ def GetDelta(self): |
+ """Returns the rounded delta. |
+ |
+ Also stops the timer if Stop() has not already been called. |
+ """ |
+ if self._endtime is None: |
+ self.Stop(log=False) |
+ delta = self._endtime - self._starttime |
+ delta = round(delta, 2) if delta < 10 else round(delta, 1) |
+ return delta |
+ |
+ def LogResult(self): |
+ """Logs the result.""" |
+ logging.info('%s seconds to perform %s', self.GetDelta(), self._description) |
+ |
+ def Stop(self, log=True): |
+ """Stop profiling. |
+ |
+ Args: |
+ log: Log the delta (defaults to true). |
+ """ |
+ self._endtime = time.time() |
+ if log: |
+ self.LogResult() |