diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/lldbbench.py')
-rw-r--r-- | packages/Python/lldbsuite/test/lldbbench.py | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/packages/Python/lldbsuite/test/lldbbench.py b/packages/Python/lldbsuite/test/lldbbench.py deleted file mode 100644 index 26ee6c21bd9a..000000000000 --- a/packages/Python/lldbsuite/test/lldbbench.py +++ /dev/null @@ -1,118 +0,0 @@ -from __future__ import absolute_import - -# System modules -import time - -# Third-party modules - -# LLDB modules -from .lldbtest import * - - -class Stopwatch(object): - """Stopwatch provides a simple utility to start/stop your stopwatch multiple - times. Each start/stop is equal to a lap, with its elapsed time accumulated - while measurment is in progress. - - When you're ready to start from scratch for another round of measurements, - be sure to call the reset() method. - - For example, - - sw = Stopwatch() - for i in range(1000): - with sw: - # Do some length operations... - ... - # Get the average time. - avg_time = sw.avg() - - # Reset the stopwatch as we are about to perform other kind of operations. - sw.reset() - ... - """ - - ############################################################# - # - # Context manager interfaces to support the 'with' statement. - # - ############################################################# - - def __enter__(self): - """ - Context management protocol on entry to the body of the with statement. - """ - return self.start() - - def __exit__(self, type, value, tb): - """ - Context management protocol on exit from the body of the with statement. - """ - self.stop() - - def reset(self): - self.__laps__ = 0 - self.__total_elapsed__ = 0.0 - self.__start__ = None - self.__stop__ = None - self.__elapsed__ = 0.0 - self.__nums__ = [] - - def __init__(self): - self.reset() - - def start(self): - if self.__start__ is None: - self.__start__ = time.time() - else: - raise Exception( - "start() already called, did you forget to stop() first?") - # Return self to facilitate the context manager __enter__ protocol. - return self - - def stop(self): - if self.__start__ is not None: - self.__stop__ = time.time() - elapsed = self.__stop__ - self.__start__ - self.__total_elapsed__ += elapsed - self.__laps__ += 1 - self.__nums__.append(elapsed) - self.__start__ = None # Reset __start__ to be None again. - else: - raise Exception("stop() called without first start()?") - - def laps(self): - """Gets the number of laps. One lap is equal to a start/stop action.""" - return self.__laps__ - - def avg(self): - """Equal to total elapsed time divided by the number of laps.""" - return self.__total_elapsed__ / self.__laps__ - - # def sigma(self): - # """Return the standard deviation of the available samples.""" - # if self.__laps__ <= 0: - # return None - # return numpy.std(self.__nums__) - - def __str__(self): - return "Avg: %f (Laps: %d, Total Elapsed Time: %f, min=%f, max=%f)" % (self.avg( - ), self.__laps__, self.__total_elapsed__, min(self.__nums__), max(self.__nums__)) - - -class BenchBase(TestBase): - """ - Abstract base class for benchmark tests. - """ - - def setUp(self): - """Fixture for unittest test case setup.""" - super(BenchBase, self).setUp() - # TestBase.setUp(self) - self.stopwatch = Stopwatch() - - def tearDown(self): - """Fixture for unittest test case teardown.""" - super(BenchBase, self).tearDown() - # TestBase.tearDown(self) - del self.stopwatch |