【发布时间】:2013-10-31 16:16:05
【问题描述】:
在理解 time.clock() 的输出时遇到了一些问题:
Linux 3.5.0-17-generic #28-Ubuntu SMP Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 分销商 ID:LinuxMint 描述:Linux Mint 14 Nadia 发布:14 代号:nadia
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from time import clock, sleep, time
>>> while True: sleep(1); print clock()
...
0.03
0.03
0.03
0.03
0.03
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyboardInterrupt
>>> while True: sleep(1); print time()
...
1382460160.37
1382460161.37
1382460162.37
1382460163.38
1382460164.38
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyboardInterrupt
# ...wait a few minutes...
>>> while True: sleep(1); print clock()
...
0.04
0.04
0.04
0.04
0.04
0.04
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyboardInterrupt
>>>
$ cat test.py
#! /usr/bin/python
from time import sleep, time, clock
while True:
print clock(), time()
sleep(1)
$ python test.py
0.02 1382460623.39
0.02 1382460624.39
0.02 1382460625.39
0.02 1382460626.39
0.02 1382460627.39
0.02 1382460628.39
0.02 1382460629.4
0.02 1382460630.4
0.02 1382460631.4
0.02 1382460632.4
0.02 1382460633.4
0.02 1382460634.4
0.02 1382460635.4
0.02 1382460636.4
0.02 1382460637.41
0.02 1382460638.41
0.02 1382460639.41
0.02 1382460640.41
0.02 1382460641.41
0.02 1382460642.41
0.02 1382460643.41
0.02 1382460644.41
0.02 1382460645.41
0.02 1382460646.42
0.02 1382460647.42
0.02 1382460648.42
0.02 1382460649.42
0.02 1382460650.42
^CTraceback (most recent call last):
File "test.py", line 7, in <module>
sleep(1)
KeyboardInterrupt
我显然在这里遗漏了一些明显的东西?
【问题讨论】:
-
@CoreyGoldberg - 是的,我查看了与 time.clock() 相关的所有各种问题,包括那个问题,但我没有看到任何解释为什么 time.clock() 会一秒又一秒地重复返回相同的(意外的)值。
-
看我的回答。这是因为您没有使用很多处理器周期..所以没有使用太多处理器时间...丢失了粒度。
-
好的,知道了。我猜这个函数的名称和它在其他平台上的工作方式不同的事实让我感到震惊。谢谢。