выбор большой:
math.random (из доки)
clock.monotonic
clock.time
clock.proc
os.time
fiber.time
Еще помню, Монс на одном из выступлений говорил, что monotonic сломан.
Для истории math.random - просто рандом clock.monotonic - монотонные системные часы, считают время с ребута тачки, гуглить clock_gettime(CLOCK_MONOTONIC). clock.time - "обычные" системные часы, сбиваются от NTP и ручного перевода времени. clock_gettime(CLOCK_REALTIME). clock.proc - игнорирует сон процесса, см CLOCK_PROCESS_CPUTIME_ID os.time - почти clock.time, но из луа мира fiber.time - как clock.time, только кешируется. Обновляется в начале эвентлупа. fiber.clock - аналог clock.monotonic с кешированием.
В доке про монотоник написано > Монотонное время похоже на физическое время, но на него не влияют изменения для перехода на летнее время или изменения, сделанные пользователем. Такую функцию лучше всего использовать для эталонного тестирования, где необходимо рассчитать затраченное время.
https://stackoverflow.com/questions/62191655/what-is-the-correct-way-to-work-with-dates-in-tarantool/62193805#62193805
Обсуждают сегодня