所以我可以使用time.clock()
来衡量函数调用的运行时间:
>>> def f() :
a = time.clock()
range(pow(10,8))
b = time.clock()
print a,b
>>> f()
0.143698 8.345905
但现在如果只是从交互式shell反复调用time.clock()
:
>>> time.clock()
0.075492
>>> time.clock()
0.075931
>>> time.clock()
0.076354
>>> time.clock()
0.076754
>>> time.clock()
0.077132
...
这些数字是什么意思?
现在,如果我这样做:
>>> def g() :
a = time.clock()
time.sleep(10)
b = time.clock()
print a,b
>>> g()
8.361528 8.361625
好的,我想sleep
不计入处理时间,所以这两个数字非常接近。但8.361528对应的是什么?
我确实阅读了文档,但我仍然不明白:
模块时间内置功能时钟的帮助:
时钟(...) clock() - >浮点数
Return the CPU time or real time since the start of the process or since the first call to clock(). This has as much precision as the system records.
答案 0 :(得分:1)
什么系统?
“此方法将当前处理器时间作为以秒表示的浮点数返回,在Unix上,在Windows中,它返回自第一次调用此函数以来经过的挂钟秒,作为浮点数。”
答案 1 :(得分:1)
time.clock()
似乎返回Python进程花费计算时间的时间。至少在交互式控制台中,等待输入的时间在某种程度上不包括在那个时间内。
您可以使用以下代码片段来查看time.clock()
的更多预期行为:
while True: print clock()
答案 2 :(得分:0)
在Unix上,将当前处理器时间返回为以秒为单位的浮点数...
在Windows上,此函数返回自第一次调用此函数以来经过的挂钟时间......
即,行为(例如,“处理器时间”的含义,是否包含sleep
时间,精度是多少)取决于平台,但所有平台上的单位都是秒
所以我可以使用time.clock()来测量函数调用的运行时间:
请改用timeit.default_timer()
。它根据操作系统分配给time.time()
或time.clock()
。在Python 3.3+上default_timer
在所有平台上都是time.perf_counter()
。
以秒为单位返回值(只有相对值有意义)。它包括“睡眠”时间。它提供了最高的可用分辨率来测量短持续时间。这种行为在各个平台上都是一致的。