Library
Module
Module type
Parameter
Class
Class type
Monotonic wall-clock time.
Mtime
provides access to monotonic wall-clock time. This time increases monotonically and is not subject to operating system calendar time adjustments. Its absolute value has no meaning and is not exposed. It can only be used to measure wall-clock time spans in a single program run.
Time resolution should be nanoseconds but can be less, consult the platform support for more information.
Release 0.8.3 - Daniel Bünzli <daniel.buenzl i@erratique.ch>
available
is true
iff monotonic wall-clock time is available. If available
is false
time spans always return zero.
The type for non-negative time spans.
Span values cannot be constructed directly they represent the difference between two monotonic wall-clock time samples.
If the platform has nanosecond resolution the size of the data type guarantees it can measure up to a approximatively 584 Julian year spans before (silently) rolling over; but remember this is in a single program run.
val elapsed : unit -> span
elapsed ()
is the wall-clock time span elapsed since the beginning of the program.
val counter : unit -> counter
counter ()
is a counter counting time from now on.
See this section for time scale definitions.
val to_ns : span -> float
to_ns span
is span
in nanoseconds (1e-9s).
val to_us : span -> float
to_us span
is span
in microseconds (1e-6s).
val to_ms : span -> float
to_ms span
is span
in milliseconds (1e-3s).
val to_s : span -> float
to_s span
is span
is seconds.
val to_min : span -> float
to_min span
is span
in SI-accepted minutes (60s).
val to_hour : span -> float
to_hour span
is span
in SI-accepted hours (3600s).
val to_day : span -> float
to_day span
is span
in SI-accepted days (24 hours, 86400s).
val to_year : span -> float
to_year span
is span
in Julian years (365.25 days, 31'557'600s).
val to_ns_uint64 : span -> int64
to_ns_uint64
is span
in nanoseconds as an unsigned 64-bit integer.
The following convenience constants relate time scales to seconds. Used as multiplicands they can be used to convert these units to and from seconds.
The constants are defined according to SI prefixes on seconds and accepted non-SI units. Years are counted in Julian years (365.25 SI-accepted days) as defined by the International Astronomical Union (IAU).
val pp_span : Format.formatter -> span -> unit
pp_span ppf span
prints an unspecified representation of span
on ppf
. The representation is not fixed-width, depends on the magnitude of span
and uses locale independent standard time scale abbreviations.
val pp_span_s : Format.formatter -> float -> unit
pp_span_s
prints like pp_span
does but on a seconds floating point time span value (which can be negative).
clock_gettime
with CLOCK_MONOTONIC.mach_absolute_time
.performance.now
(consult availability) which returns a double floating point value in milliseconds with resolution up to the microsecond.