Python程式執行時間測試
阿新 • • 發佈:2019-01-10
# coding=utf-8 import math import time class Timer: ''' 計算程式執行時間 t = Timer() with t: 執行檢測的程式 print t.elapsed ''' def __init__(self, func=time.perf_counter): self.elapsed = 0.0 self._func = func self._start = None def start(self): if self._start: raise RuntimeError('Already started!') self._start = self._func() def stop(self): if not self._start: raise RuntimeError('Not started') end = self._func() self.elapsed += end - self._start self._start = None def reset(self): self.elapsed = 0.0 @property def running(self): return self._start is not None def __enter__(self): self.start() return self def __exit__(self, exc_type, exc_val, exc_tb): self.stop() def create(num): result = [] result_append = result.append sqrt = math.sqrt for i in range(num): result_append(sqrt(i)) if __name__ == '__main__': t = Timer() with t: print('執行狀況:{0}'.format(t.running)) create(10000000) print(t.elapsed) print('執行狀況:{0}'.format(t.running))