尽管它们已被弃用,而且有比
time
模块更好的模块(即timeit
),但我想知道这两个函数time.clock()
和time.time()
之间的区别。从后者(time.time()
)开始,它基本上返回从1970年1月1日(如果我没记错的话)以秒为单位经过的时间,通常精度为1秒。到这里很简单。相反,time.clock()
仍然让我感到困惑。从文档开始:现在在Windows中很明显,它所做的与在Unix上,作为浮点数返回当前处理器时间,以秒为单位表示。精度,实际上是“处理器时间”含义的定义取决于同名C函数的定义,但无论如何,这是用于基准测试Python或计时算法的函数。
在Windows上,此函数返回自第一次调用此函数以来经过的墙钟秒数,作为浮点数,基于Win32函数QueryPerformanceCounter()。分辨率通常优于一微秒。
time.time()
相同,只是精度更高。但在Unix/Linux中,我无法理解。我尝试了以下代码:import time
def procedure():
time.sleep(2.5)
# measure process time
t0 = time.clock()
procedure()
print(time.clock() - t0, "process time")
我获得了 5.300000000000096e-05秒
的处理时间,这对我来说非常奇怪。
阅读这篇已发布的问题和答案,其中一个回答说:
[...]time.clock()测量当前进程使用的CPU时间。
但我不明白,当前进程在做什么时使用了多少时间?当我在Unix上调用time.clock()
时,我得到一个小数,那是什么意思?从??到??进程所消耗的时间?
print(time.clock())
,这样做会更有意义。 - Padraic Cunningham