在Python 3.4.1中,我试图测量函数运行和完成然后记录它所需的时间.我现在这样做是这样的:
starttime = time.clock()
asyncio.wait_for((method()), 5)
endtime = time.clock()
print(endtime - starttime)
Run Code Online (Sandbox Code Playgroud)
这通常导致Python在6.29989986222767E-06(或0.00000629989986222767E)附近吐出一些东西.然后我用time.sleep尝试了它:
starttime = time.clock()
asyncio.wait_for((time.sleep(3)), 5)
endtime = time.clock()
print(endtime - starttime)
Run Code Online (Sandbox Code Playgroud)
这再次导致6.87261802845284E-06,尽管(至少我认为)它应该需要3秒.我尝试使用线程,结果相同.你怎么看?如何测量函数运行和完成所需的时间?
我通常使用这个装饰器来计时我的函数:
import time
def timeit(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
print '%r (%r, %r) %2.2f sec' % \
(method.__name__, args, kw, te-ts)
return result
return timed
@timeit
def timeme():
time.sleep(3)
Run Code Online (Sandbox Code Playgroud)
time.time()time.clock()与主要测量 CPU 时间相比,它为基准测试提供了更精确的时间time.clock()。time.time()将返回自纪元以来经过的秒数(即墙上时间),这正是您所需要的。
或者您也可以使用timeit https://docs.python.org/3/library/timeit.html