我想知道自执行代码启动计时器然后完成计时器以来需要多长时间。例如,这是我一直在寻找的东西:
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!
我该怎么做?
答案 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
。这只是为了展示最接近的等价物。)