Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Модуль clock

Общие сведения

Модуль clock возвращает значения времени, полученные из функции Posix / C CLOCK_GETTIME или аналогичной. Большинство функций модуля возвращают число секунд; функции, названия которых заканчиваются на "64", возвращают 64-разрядное число наносекунд.

Указатель

Ниже приведен перечень всех функций модуля clock.

Имя

Назначение

clock.time()
clock.realtime()

Получение физического времени в секундах

clock.time64()
clock.realtime64()

Получение физического времени в наносекундах

clock.monotonic()

Получение монотонного времени в секундах

clock.monotonic64()

Получение монотонного времени в наносекундах

clock.proc()

Получение времени процессора в секундах

clock.proc64()

Получение времени процессора в наносекундах

clock.thread()

Получение времени потока в секундах

clock.thread64()

Получение времени потока в наносекундах

clock.bench()

Измерение времени выполнения функции в процессоре

clock.time()

clock.time64()

clock.realtime()

clock.realtime64()

Физическое время в секундах. Получено из C-функции clock_gettime(CLOCK_REALTIME).

Возвращает

секунды или наносекунды с начала эпохи (1970-01-01 00:00:00) с поправкой.

Тип возвращаемого значения

number or cdata (ctype<int64_t>)

Пример:

-- Результатом будет примерное число лет с 1970.clock = require('clock')print(clock.time() / (365*24*60*60))

См. также fiber.time64 и стандартную Lua-функцию os.clock.

clock.monotonic()

clock.monotonic64()

Монотонное время. Получено из C-функции clock_gettime(CLOCK_MONOTONIC). Монотонное время похоже на физическое время, но не зависит от перехода на летнее/зимнее время или изменений, внесенных пользователем. Это наилучшая функция для использования в тестах производительности, где требуется вычислить затраченное время.

Возвращает

секунды или наносекунды с момента последней загрузки компьютера.

Тип возвращаемого значения

number or cdata (ctype<int64_t>)

Пример:

-- Результатом будет число наносекунд с запуска.clock = require('clock')print(clock.monotonic64())

clock.proc()

clock.proc64()

Время процессора. Получено из C-функции clock_gettime(CLOCK_PROCESS_CPUTIME_ID). Такую функцию лучше всего использовать для эталонного тестирования, где необходимо рассчитать время, затраченное на процессоре.

Возвращает

секунды или наносекунды с момента запуска процессора.

Тип возвращаемого значения

number или cdata (ctype<int64_t>)

Пример:

-- Результатом будет число наносекунд с запуска процессора.clock = require('clock')print(clock.proc64())

clock.thread()

clock.thread64()

Рабочее время потока. Получено из C-функции clock_gettime(CLOCK_THREAD_CPUTIME_ID). Такую функцию лучше всего использовать для эталонного тестирования, где необходимо рассчитать время, затраченное потоком на процессоре.

Возвращает

секунды или наносекунды с момента запуска потока обработчика транзакций.

Тип возвращаемого значения

number или cdata (ctype<int64_t>)

Пример:

-- Результатом будет число секунд с момента начала работы потока.clock = require('clock')print(clock.thread64())

clock.bench(function[, ...])

Время, которое функция проводит в процессоре. Данная функция использует clock.proc(), то есть рассчитывает затраченное процессором время. Таким образом, она не используется для отображения фактически затраченного времени.

Параметры:

  • function (function) — функция или ссылка на функцию
  • ...: любые значения, необходимые для функции.

Возвращает

table.

Первый элемент – секунды процессорного времени, второй элемент – результат выполнения функции.

Пример:

-- Эталонное тестирование функции, которая находится в спящем режиме в течение 10 секунд.-- NB: bench() не будет рассчитывать время сна.-- Поэтому вернется значение, которое будет {число менее 10, 88}.clock = require('clock')fiber = require('fiber')function f(param)  fiber.sleep(param)  return 88endclock.bench(f, 10)