Chromium Code Reviews| 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..d2e82ca99866895d36559d8c113b5e58d8e84e8a 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 < 1 else round(delta, 1) |
|
jbudorick
2015/09/15 18:36:41
nit: I'd prefer this rounding threshold at 10s ins
agrieve
2015/09/15 19:30:05
Done.
|
| + 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() |