我该如何创建计时器?

时间:2012-10-03 20:55:59

标签: python timer

我想知道自执行代码启动计时器然后完成计时器以来需要多长时间。例如,这是我一直在寻找的东西:

import timerlib
import urllib2

timer = timerlib.timer()

print 'Starting download now!'
timer.start()

urllib2.urlopen('http://some.site.com/100mb')

timer.stop()
print 'Downloaded 100mb in ' + str(timer.collectedtime()) + '!'

它会输出类似:Downloaded 100mb in 5m31s!

的内容

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您只是为了方便最终用户而打印出一段时间,而不是用于分析目的,那么您不需要任何花哨的东西; time.time返回您可以进行算术运算和打印的时间戳(事实上,只是浮点秒):

import time
t0 = time.time()
print 'Starting download now!'
urllib2.urlopen('http://some.site.com/100mb')
t = time.time()
print 'Downloaded 100mb in ' + str(t - t0) + '!'

但如果您正在寻找分析,那么您肯定想使用timeit

import timeit
timeit.timeit("urllib2.urlopen('http://some.site.com/100mb')", 
              setup="import urllib2", 
              number=1)

正如您所看到的,这不是那么简洁,也不是那么灵活。但是timeit库会处理新手从未想过的各种细节,经验丰富的开发人员仍然会出错。

(当然,在现实生活中,你永远不想基于一次运行来描述任何事情,所以你不应该传递number=1。这只是为了展示最接近的等价物。)