Модуль 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
()¶ The monotonic time. Derived from C function
clock_gettime(CLOCK_MONOTONIC)
. Monotonic time is similar to wall clock time but is not affected by changes to or from daylight saving time, or by changes done by a user. This is the best function to use with benchmarks that need to calculate elapsed time.возвращает: секунды или наносекунды с момента последней загрузки компьютера. тип возвращаемого значения: number or cdata (ctype<int64_t>) Пример:
-- Результатом будет число наносекунд с запуска. clock = require('clock') print(clock.monotonic64())
-
clock.
proc
()¶ -
clock.
proc64
()¶ Время процессора. Получено из C-функции
clock_gettime(CLOCK_PROCESS_CPUTIME_ID)
. Такую функцию лучше всего использовать для эталонного тестирования, где необходимо рассчитать время, затраченное на процессоре.возвращает: секунды или наносекунды с момента начала работы процессора. тип возвращаемого значения: number or cdata (ctype<int64_t>) Пример:
-- Результатом будет число наносекунд с запуска процессора. clock = require('clock') print(clock.proc64())
-
clock.
thread
()¶ -
clock.
thread64
()¶ Рабочее время потока. Получено из C-функции
clock_gettime(CLOCK_THREAD_CPUTIME_ID)
. Такую функцию лучше всего использовать для эталонного тестирования, где необходимо рассчитать время, затраченное потоком на процессоре.возвращает: секунды или наносекунды с момента начала работы потока процессора транзакций. тип возвращаемого значения: number or cdata (ctype<int64_t>) Пример:
-- Результатом будет число секунд с момента начала работы потока. clock = require('clock') print(clock.thread64())
-
clock.
bench
(function[, ...])¶ Время, которое функция проводит в процессоре. Данная функция использует
clock.proc()
, то есть рассчитывает затраченное процессором время. Таким образом, она не используется для отображения фактически затраченного времени.Параметры: - function (
function
) – функция или ссылка на функцию - ... – значения, которые необходимы для функции.
возвращает: таблица. Первый элемент – время работы процессора в секундах, второй элемент – то, что возвращает функция.
Пример:
-- Эталонное тестирование функции, которая находится в спящем режиме в течение 10 секунд. -- NB: bench() не будет рассчитывать время сна. -- Поэтому вернется значение, которое будет {число менее 10, 88}. clock = require('clock') fiber = require('fiber') function f(param) fiber.sleep(param) return 88 end clock.bench(f, 10)
- function (