Странности в работе функции `time.monotonic()`
Прохожу курс по Python, узнал про функцию time.monotonic()
то, что разность двух значений возвращаемых функцией должна быть фиксированной при каждом запуске программы. Но ничего такого я не замечаю.
import time
st = time.monotonic()
time.sleep(1)
end = time.monotonic()
print(end - st)
Приведённый выше код при каждом запуске выводит абсолютно разные числа. Я что-то не понял? Использую macOS 12, редактор кода Zed, Python 3.12.5
Ответы (1 шт):
Эта функция совсем для другого. Суть в том, что если вы даже переведёте системные часы назад функция monotonic
не выдаст время меньше в следующий раз, когда вы её вызовете. А вот обычная функция time
может выдать меньшее время и у вас получится отрицательный результат измерения.
Функция monotonic
не зависит от системных часов и их переводов и никогда не выдаст при следующем вызове время меньшее, чем в предыдущий вызов. Поэтому её рекомендуется использовать для длительных замеров времени, между которыми всякое может произойти, например, перевод системных часов назад (из-за летнего/зимнего времени или ещё из-за чего-то).