Модуль clock¶
The clock
module returns time values derived from the Posix / C
CLOCK_GETTIME function or equivalent. Most functions in the module return a
number of seconds; functions whose names end in «64» return a 64-bit number of
nanoseconds.
-
clock.
time
()¶ -
clock.
time64
()¶ -
clock.
realtime
()¶ -
clock.
realtime64
()¶ The wall clock time. Derived from C function clock_gettime(CLOCK_REALTIME). This is the best function for knowing what the official time is, as determined by the system administrator.
Return: seconds or nanoseconds since epoch (1970-01-01 00:00:00), adjusted. Rtype: number or number64 Example:
-- This will print an approximate number of years since 1970. clock = require('clock') print(clock.time() / (365*24*60*60))
See also fiber.time64 and the standard Lua function 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.
Return: seconds or nanoseconds since the last time that the computer was booted. Rtype: number or number64 Example:
-- This will print nanoseconds since the start. clock = require('clock') print(clock.monotonic64())
-
clock.
proc
()¶ -
clock.
proc64
()¶ The processor time. Derived from C function
clock_gettime(CLOCK_PROCESS_CPUTIME_ID)
. This is the best function to use with benchmarks that need to calculate how much time has been spent within a CPU.Return: seconds or nanoseconds since processor start. Rtype: number or number64 Example:
-- This will print nanoseconds in the CPU since the start. clock = require('clock') print(clock.proc64())
-
clock.
thread
()¶ -
clock.
thread64
()¶ The thread time. Derived from C function
clock_gettime(CLOCK_THREAD_CPUTIME_ID)
. This is the best function to use with benchmarks that need to calculate how much time has been spent within a thread within a CPU.Return: seconds or nanoseconds since thread start. Rtype: number or number64 Example:
-- This will print seconds in the thread since the start. clock = require('clock') print(clock.thread64())
-
clock.
bench
(function[, ...])¶ The time that a function takes within a processor. This function uses
clock.proc()
, therefore it calculates elapsed CPU time. Therefore it is not useful for showing actual elapsed time.Параметры: - function (function) – function or function reference
- ... – whatever values are required by the function.
Return: table. first element - seconds of CPU time, second element - whatever the function returns.
Example:
-- Benchmark a function which sleeps 10 seconds. -- NB: bench() will not calculate sleep time. -- So the returned value will be {a number less than 10, 88}. clock = require('clock') fiber = require('fiber') function f(param) fiber.sleep(param) return 88 end clock.bench(f, 10)