0

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

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!

我怎样才能做到这一点?

4

1 回答 1

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。那只是为了展示最接近的等价物。)

于 2012-10-03T21:03:30.003 回答