每一個鍵被按下這樣的時候,我得到一個時間戳:了time.time()漂移千呼萬喚
init_timestamp = time.time()
while (True):
c = getch()
offset = time.time() - init_timestamp
print("%s,%s" % (c,offset), file=f)
我驗證時間戳對的我居然打字鍵錄音。在將第一次時間戳與波形對齊之後,隨後的時間戳略微但一致地漂移。我的意思是說,保存的時間戳比按鍵波形晚,隨着時間的推移會晚點和晚點。
我有理由相信波形時機是正確的(即記錄是不是快或慢),因爲在記錄我還包括一個非常精確的時鐘與第二標記線了完美的滴答聲。
我知道time.time()
的準確性存在不可避免的限制,但這似乎並不能說明我所看到的情況 - 如果雙方同樣錯誤,那麼可以接受,但我不想要它逐漸越來越脫離事實。
爲什麼我會看到這個漂流行爲,我能做些什麼來避免呢?
您是否嘗試過'time.clock()',在某些系統上,這比時間更準確。time()' – muddyfish
@muddyfish no,'time.clock()'在這裏使用肯定是錯誤的。 'time.clock()'是處理器時鐘時間(如果程序不使用任何時鐘週期,它將不會前進),而不是掛鐘時間('time.time()')。另請參閱:http://pymotw.com/2/time/ –
啊,更正:在Windows上'time.clock()'實際上似乎正在返回掛鐘時間秒。 *嘆息* –