2016-05-09 92 views
1

此代碼:time.clock()不返回時間正確

import time 

now = time.clock() 
while now + 5 > time.clock(): 
    print time.clock() 
    time.sleep(1) 
    print "Woke up" 

回報:正如你所看到的,回來的時候似乎

0.015718 
Woke up 
0.015814 
Woke up 
0.015942 
Woke up 
0.016107 
Woke up 
0.01625 
Woke up 
0.016363 

不返回與經過時間秒錶示爲整數,即使這是文檔所說的應該做的。這裏有什麼問題?

編輯:我在Mac OS X埃爾卡皮坦

+0

HTTPS傳遞://docs.python。 org/3/library/time.html#time.clock – user3159253

+0

引用文檔:在Unix上,將當前處理器時間返回爲以秒爲單位的浮點數。精確性,實際上「處理器時間」含義的定義取決於具有相同名稱的C函數的精確度。 – user3159253

+0

你在做什麼操作系統? – Neo

回答

1

你或許應該閱讀使用手冊:

在Unix,返回當前處理器時間以秒錶示浮點數。精確性,實際上「處理器時間」含義的定義取決於具有相同名稱的C函數的精確性,但無論如何,這是用於基準測試Python或時序算法的函數。 在Windows上,此函數基於Win32函數QueryPerformanceCounter(),將自第一次調用此函數以來的壁鐘時間秒作爲浮點數返回。分辨率通常優於1微秒。

這是假設你使用UNIX(FX Linux或iOS)的行爲是正確的。 time.clock返回進程消耗的CPU時間量,休眠時不消耗任何CPU時間。

當然,UNIX和Windows之間的區別使這個功能無用,除非您檢測哪些行爲是有效的並且相應地採取行動。

1

基於這種模式,這可能會訣竅。 time.clock()會給你處理時間和了time.time() - now_time()會給多少秒通過各time.sleep(1)

import time 
now = time.clock() 
now_time = time.time() 
while now + 5 > time.clock(): 
    print time.time() - now_time + time.clock() 
    time.sleep(1) 
    print "Woke up" 
相關問題