Модуль clock
Модуль clock возвращает значения времени, полученные из функции Posix
/ C CLOCK_GETTIME или аналогичной. Большинство функций модуля
возвращают число секунд; функции, названия которых заканчиваются на
"64", возвращают 64-разрядное число наносекунд.
Ниже приведен перечень всех функций модуля clock.
Имя | Назначение |
|---|---|
Получение физического времени в секундах | |
Получение физического времени в наносекундах | |
Получение монотонного времени в секундах | |
Получение монотонного времени в наносекундах | |
Получение времени процессора в секундах | |
Получение времени процессора в наносекундах | |
Получение времени потока в секундах | |
Получение времени потока в наносекундах | |
Измерение времени выполнения функции в процессоре |
Физическое время в секундах.
Получено из 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.
Монотонное время. Получено из C-функции
clock_gettime(CLOCK_MONOTONIC). Монотонное время похоже на физическое
время, но не зависит от перехода на летнее/зимнее время или изменений,
внесенных пользователем. Это наилучшая функция для использования в
тестах производительности, где требуется вычислить затраченное время.
Возвращает
секунды или наносекунды с момента последней загрузки компьютера.
Тип возвращаемого значения
number or cdata (ctype<int64_t>)
Пример:
-- Результатом будет число наносекунд с запуска.clock = require('clock')print(clock.monotonic64())
Время процессора. Получено из C-функции clock_gettime(CLOCK_PROCESS_CPUTIME_ID). Такую функцию лучше всего
использовать для эталонного тестирования, где необходимо рассчитать время, затраченное на процессоре.
Возвращает
секунды или наносекунды с момента запуска процессора.
Тип возвращаемого значения
number или cdata (ctype<int64_t>)
Пример:
-- Результатом будет число наносекунд с запуска процессора.clock = require('clock')print(clock.proc64())
Рабочее время потока. Получено из C-функции clock_gettime(CLOCK_THREAD_CPUTIME_ID). Такую функцию лучше всего
использовать для эталонного тестирования, где необходимо рассчитать время, затраченное потоком на процессоре.
Возвращает
секунды или наносекунды с момента запуска потока обработчика транзакций.
Тип возвращаемого значения
number или cdata (ctype<int64_t>)
Пример:
-- Результатом будет число секунд с момента начала работы потока.clock = require('clock')print(clock.thread64())
Время, которое функция проводит в процессоре.
Данная функция использует 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)