2017-10-06 78 views
1

通過在我的代碼的開始和時間測量精度

print("%f seconds" % (time.time() - start_time)) 

在我的代碼我一直在衡量我的劇本的演出結束貫徹線

start_time = time.time() 

(可坐小時運行)。我聽說這可能不是最好的方法,因爲它不準確。它有多準確,是否有更好的選擇?

+1

在一個時間尺度的時間,任何一秒的精確度似乎無關緊要。你想要你的時間有多精確? – Evert

+0

不顧這個數字。我來推薦最好的方法。乾杯 – Worm

+2

「最好的方法」有點主觀。最好的方法可能花費20萬美元,因此可能不是您錢包的最佳方法。另外,你想測量掛鐘時間,CPU時間嗎?請讓你的問題更實際。 – Evert

回答

1

試試這個講,timeit從標準庫:

from timeit import default_timer as timer 
start_time = timer() 
end_time = timer()  
print(end_time - start_time)                                   
logger.info("Duration was {}".format(end_time - start_time)) 

爲default_timer的文檔的興趣,真的應該在回答被引用:「定義默認的定時器,在特定平臺的方式。在Windows上,time.clock()的粒度爲微秒,但time.time()的粒度爲1/60秒。在Unix上,time.clock()的粒度爲1/100秒,time.time ()更精確,在任一平臺上,default_timer()都會測量掛鐘時間,而不是CPU時間,這意味着運行在同一臺計算機上的其他進程可能會影響計時。

+1

你能指出爲什麼這是一個關於精度的更好的選擇嗎?謝謝 – Worm

+1

'default_timer'的文檔很有意思,應該在答案中引用它:「定義一個默認的定時器,採用特定於平臺的方式。在Windows中,time.clock()具有微秒粒度,但time.time ()的粒度是1/60秒,在Unix上,time.clock()的粒度是1/100秒,time.time()更精確。在任一平臺上,default_timer()測量牆時鐘時間,而不是CPU時間,這意味着運行在同一臺計算機上的其他進程可能會影響時間。「 – Evert

+0

非常感謝。我會編輯你的答案並接受它。 – Worm

0

嘗試USNG日期時間

from datetime import datetime 
startTime = datetime.now() 
#CODE 
print("Time taken:",datetime.now() - startTime) 
+1

你能指出爲什麼這是一個更好的選擇關於準確性?謝謝 – Worm

+1

https://docs.python.org/3/library/datetime.html –