在Python中使用哪个更好?Time.clock()还是time.time()?哪一种更准确?
例如:
start = time.clock()
... do something
elapsed = (time.clock() - start)
vs.
start = time.time()
... do something
elapsed = (time.time() - start)
在Python中使用哪个更好?Time.clock()还是time.time()?哪一种更准确?
例如:
start = time.clock()
... do something
elapsed = (time.clock() - start)
vs.
start = time.time()
... do something
elapsed = (time.time() - start)
当前回答
这取决于你在乎什么。如果您指的是WALL TIME(即墙上时钟上的时间),则TIME .clock()不能提供精度,因为它可能管理CPU时间。
其他回答
对比Ubuntu Linux和Windows 7的测试结果。
在Ubuntu上
>>> start = time.time(); time.sleep(0.5); (time.time() - start)
0.5005500316619873
Windows 7操作系统
>>> start = time.time(); time.sleep(0.5); (time.time() - start)
0.5
简单回答:在Python中使用time.clock()进行计时。
在*nix系统上,clock()返回处理器时间为浮点数,以秒表示。在Windows上,它以浮点数的形式返回自第一次调用此函数以来所经过的秒数。
time()返回自纪元以来的秒数,以UTC为单位,作为浮点数。不能保证您将获得比1秒更好的精度(即使time()返回一个浮点数)。还要注意,如果在两次调用该函数之间设置了系统时钟,那么第二次函数调用将返回一个较低的值。
其他人回答了re: time.time() vs. time.clock()。
但是,如果您是为了基准测试/分析目的而对代码块的执行进行计时,则应该查看timeit模块。
在Linux上,time()比clock()具有更好的精度。Clock()的精度小于10毫秒。而time()提供完美的精度。 我的测试用的是CentOS 6.4和python 2.6
using time():
1 requests, response time: 14.1749382019 ms
2 requests, response time: 8.01301002502 ms
3 requests, response time: 8.01491737366 ms
4 requests, response time: 8.41021537781 ms
5 requests, response time: 8.38804244995 ms
使用时钟():
1 requests, response time: 10.0 ms
2 requests, response time: 0.0 ms
3 requests, response time: 0.0 ms
4 requests, response time: 10.0 ms
5 requests, response time: 0.0 ms
6 requests, response time: 0.0 ms
7 requests, response time: 0.0 ms
8 requests, response time: 0.0 ms
简单的答案是:大多数时候time.clock()会更好。 然而,如果你正在为某些硬件计时(例如你在GPU中放入的某些算法),那么time.clock()将摆脱这个时间,而time.time()是唯一剩下的解决方案。
注意:无论使用何种方法,计时将取决于您无法控制的因素(进程何时切换,频率如何,……),这对于time.time()来说更糟糕,但对于time.clock()也存在,因此您永远不应该只运行一个计时测试,而是始终运行一系列测试并查看时间的均值/方差。