【问题标题】:Unexpected output of (Python) time.clock()(Python) time.clock() 的意外输出
【发布时间】: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() 会一秒又一秒地重复返回相同的(意外的)值。
  • 看我的回答。这是因为您没有使用很多处理器周期..所以没有使用太多处理器时间...丢失了粒度。
  • 好的,知道了。我猜这个函数的名称和它在其他平台上的工作方式不同的事实让我感到震惊。谢谢。

标签: python linux time clock


【解决方案1】:

在 Linux 系统上,time.clock() 返回“处理器时间”,而不是“墙上时间”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    相关资源
    最近更新 更多