Странности в работе функции `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 шт):

Автор решения: CrazyElf

Эта функция совсем для другого. Суть в том, что если вы даже переведёте системные часы назад функция monotonic не выдаст время меньше в следующий раз, когда вы её вызовете. А вот обычная функция time может выдать меньшее время и у вас получится отрицательный результат измерения.

Функция monotonic не зависит от системных часов и их переводов и никогда не выдаст при следующем вызове время меньшее, чем в предыдущий вызов. Поэтому её рекомендуется использовать для длительных замеров времени, между которыми всякое может произойти, например, перевод системных часов назад (из-за летнего/зимнего времени или ещё из-за чего-то).

→ Ссылка