一、使用 time
粗粒度的计算时间
1 2 3 4 5 6
   | from time import time
  begin = time() job = [x**2 for x in range(1, 100000, 3)] end = time() print('used {:.5} s'.format(end-begin))
   | 
 
细粒度的计算时间
我们将 使用 with 关键字配合一个 Timer 上下文管理器来包装想计算的代码。当代码块开始执行,它将启动计时器;当代码块结束的时候,它将停止计时器。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   | import time
  class Timer(object):         def __init__(self, verbose=False):         self.verbose = verbose       def __enter__(self):         self.start = time.time()         return self       def __exit__(self, *args):         self.end = time.time()         self.secs = self.end - self.start         self.msecs = self.secs * 1000           if self.verbose:             print('=> elapsed time: %f ms' % self.msecs)
  with Timer() as t:     job = [x**2 for x in range(1, 1000000, 3)] print("=> elapsed time: %s s" % t.secs)
   | 
 
二、 使用 profiler
平均耗时计算
有时候我们需要测算代码多次运行的平均时间。
1 2 3 4 5 6 7 8 9 10
   |  from timeit import timeit
 
  def add():     return sum(range(111))
 
  t = timeit('add()', setup="from  __main__ import add", number=100000) print(t)
 
  |