簡體   English   中英

time.time()值跳躍

[英]time.time() values jumping

問題:調用函數time.time()時,我注意到它在重新啟動后約30秒跳躍。 通過跳躍,我的意思是它立即將其返回值更改了約40秒。

設置:重新啟動后,我立即在Raspberry Pi 3B上運行腳本。 以后運行時不會發生此問題。

問題:為什么會發生? 我懷疑Raspberry在通過WiFi重新啟動后的某個時候會更改其系統時鍾。 可能是這個問題嗎? 我認為發布代碼沒有幫助,因為它確實是與time.time()函數相關的問題。

許多操作系統在啟動時都會更新時鍾。 time.time()返回自紀元以來的時間,因此,如果時鍾更改,則now和紀元之間的差也將更改。

如果要避免這些跳躍,則可能需要使用單調計時器。 Python 3.3引入了time.monotonic() ,將其簽出。 從文檔中:

返回單調時鍾的值(以秒為單位),即不能向后移動的時鍾。 時鍾不受系統時鍾更新的影響。 返回值的參考點是不確定的,因此僅連續調用的結果之間的差有效。

對於Python <3.3,還有單調的第三方軟件包

這很可能是因為Raspberry Pi沒有實時時鍾。 相反,我建議您使用單調。 無論系統時鍾是否更改,這都應為您提供一致的輸出。

我通常使用的庫在此處可用,並且支持Python 2.7和Python3.X。

檢查惠斯勒是否可以調整來自NPT等外部來源的時鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM