Python:不使用系统时钟的经过时间

问题描述 投票:0回答:1

我需要测量等待输入的程序所花费的时间。

但是,测量时我的系统时钟并不稳定 - 我使用的是没有 RTC 的 Pi 0,因此启动时时钟关闭。但是,当连接到互联网时,时钟将同步到 NTP。在启动程序之前等待互联网是不可行的。


我目前在开始和结束时使用“time.time()”,并减去这些值。
start = time.time()
# wait for input and complete tasks
end = time.time()
elapsed=end-start

这会失败,因为当 NTP 同步时,它可以将

time.time()
的值更改超过 20 分钟。这极大地改变了我的消逝时间。

我想要一个类似的计时系统,但是即使系统时钟发生变化,它也保持不变。

python time clock ntp
1个回答
0
投票

您可以使用Python中的time.monotonic()函数来测量经过的时间,而不依赖于系统时钟。 time.monotonic() 返回自过去任意点以来以秒为单位单调递增的时间,并且它不会因 NTP 同步或其他系统时间调整而发生变化。使用方法如下:

import time

start = time.monotonic()
# Wait for input and complete tasks
end = time.monotonic()
elapsed = end - start

print(f"Elapsed time: {elapsed} seconds")
© www.soinside.com 2019 - 2024. All rights reserved.