0

Having some trouble understanding the output from 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 Distributor ID: LinuxMint Description: Linux Mint 14 Nadia Release: 14 Codename: 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

I'm obviously missing something obvious here?

dwelch91
  • 399
  • 4
  • 11
  • http://stackoverflow.com/questions/85451/python-time-clock-vs-time-time-accuracy – Corey Goldberg Oct 22 '13 at 16:59
  • @CoreyGoldberg - yeah, I looked over all the various questions having to do with time.clock(), including that one, but I don't see any that explain why time.clock() would return the same (unexpected) value repeatedly, second after second. – dwelch91 Oct 22 '13 at 17:02
  • see my answer. it's because you have not used many processor cycles.. so not much processor time used... lost in the granularity. – Corey Goldberg Oct 22 '13 at 17:03
  • OK, got it. I guess the name of the function and the fact it works differently than on other platforms threw me off. Thanks. – dwelch91 Oct 22 '13 at 18:02

1 Answers1

3

on Linux systems, time.clock() returns "processor time", not "wall time".

Corey Goldberg
  • 59,062
  • 28
  • 129
  • 143