2
我需要計算在Raspberry Pi上執行一些代碼之間經過的秒數。通常,我在下面的Python會怎麼做它:當設備的歷元時間不可靠時,用Python測量時間
start = time.time()
execute_my_function()
end = time.time()
elapsed = end - start
然而,樹莓派不包括RTC,而是依賴於NTP。這意味着在啓動後的第一個小時內,系統時間是1970年1月1日,所以「結束」和「開始」之間的差異通常約爲47年。
如果系統時間不可靠,我該如何測量經過時間(從我能收集的信息來看,「timeit」模塊依賴於「時間」,因此也不會工作)?它並不一定是完全準確的 - 一兩個或兩個太多或太少都沒問題。
編輯:我做了一些破解,我讀/ proc /正常運行時間,我相信是獨立於系統時間,但我有點覺得這樣的骯髒。我希望有一個更少的操作系統相關的解決方案。
也許你可以等待,直到你的代碼開始運行之前,NTP同步完成。不知道你怎麼能這樣做,但可能有辦法。另一種骯髒的方式是在延遲循環中等待,直到時間不等於1970年1月1日 –
你需要在啓動後馬上啓動程序嗎?你可以把依賴於NTP?使用'systemd'或類似的東西?您可以將NTP指定爲依賴項。 – Raito
不幸的是,我不能依賴NTP。即使系統現在或即將離線,包括啓動時,系統仍可以運行。 –