Python的time.clock()和time.time()哪个更准确?

42 浏览
0 Comments

Python的time.clock()和time.time()哪个更准确?

在 Python 中,使用哪种方法更好用来计时?是 time.clock() 还是 time.time()?哪一种方法提供更高的精确度?

比如:

start = time.clock()
... do something
elapsed = (time.clock() - start)

vs.

start = time.time()
... do something
elapsed = (time.time() - start)

admin 更改状态以发布 2023年5月21日
0
0 Comments

简短的回答:大部分情况下,time.clock() 更好。

但是,如果您正在计时某些硬件(例如您在 GPU 中放置的某个算法),则 time.clock() 会摆脱这个时间,time.time() 将是唯一的解决方案。

请注意:无论使用哪种方法,时间都会受到您无法控制的因素的影响(进程何时切换,切换频率等等),time.time() 更糟糕,但 time.clock() 也会受到影响,因此您不应该仅运行一个时间测试,而是应始终运行测试系列并查看时间的平均值/方差。

0
0 Comments

自从3.3版以来,time.clock()已经过时,建议改用time.process_time()time.perf_counter()

之前在2.7版本中,根据time模块文档:

time.clock()

在Unix上,以秒为单位的浮点数返回当前处理器时间。 精度,事实上,甚至“处理器时间”的含义的定义取决于同名的C函数的定义,但在任何情况下,这是用于基准测试Python或计时算法的函数。

在Windows上,此函数返回自调用此函数以来经过的挂钟秒数,作为浮点数,基于Win32函数QueryPerformanceCounter()。 分辨率通常高于一微秒。

此外,还有timeit模块用于基准测试代码片段。

0