我看到Windows上的time.clock()在第一次调用时启动了一个定时器,并返回自此之后第一次调用调用以来的elasped时间。我读到重启时钟的唯一方法是启动一个新进程。
启动和杀死线程应该重启time.clock()吗?它现在似乎不起作用。如果没有,是重新启动整个可执行文件的唯一解决方案吗?
答案 0 :(得分:4)
线程不是进程,所以,不。 (作为一个小问题,你不能在Python中杀死一个线程,你只能要求它退出。通过其他方式杀死线程,即使存在这样的手段,也可能使Python处于不良状态。)
问题是为什么要重置计时器,以及使用time.clock()
的原因。如果您关注两个点之间经过的时间,如果time.time()
不合适,那么您需要从第二个点中减去第一个点。无需重置。我建议只使用time.time()
,除非你真的关心粒度的这一点差异,因为time.time()
在所有平台上的工作方式相同,与time.clock()
相反。
答案 1 :(得分:0)
如果你想要一个时钟你可以重置线程,你可以使用time.clock()
的精度重置,这比time.time()
更高,只是因为第二个的浮点数更大(几乎难以察觉的差异) ,为了测量运行某些代码时经过的时间,你可以试试这个:
t0 = time.clock()
... do something
print('Running time:', time.clock()-t0)
哟也可以尝试功能装饰:
def duration(code):
def f(*args):
t0 = time.clock()
bar = code(*args)
print('Running time:', time.clock()-t0)
return bar
return f
在此之后,您可以使用装饰器定义您的功能:
@duration
def myFun(*args):
... do something
或者只需使用装饰器调用该函数:
duration(myFun)(*args)