GETHRTIME(3C) Standard C Library Functions GETHRTIME(3C)
NAME
gethrtime, gethrvtime - get high resolution time
SYNOPSIS
#include <sys/time.h>
hrtime_t gethrtime(
void);
hrtime_t gethrvtime(
void);
DESCRIPTION
The
gethrtime() function returns the current high-resolution real
time. Time is expressed as nanoseconds since some arbitrary time in
the past; it is not correlated in any way to the time of day, and
thus is not subject to resetting or drifting by way of
adjtime(2) or
settimeofday(3C). The hi-res timer is ideally suited to performance
measurement tasks, where cheap, accurate interval timing is required.
The
gethrvtime() function returns the current high-resolution LWP
virtual time, expressed as total nanoseconds of execution time.
The
gethrtime() and
gethrvtime() functions both return an
hrtime_t, which is a 64-bit (
long long) signed integer.
EXAMPLES
The following code fragment measures the average cost of
getpid(2):
hrtime_t start, end; int i, iters = 100; start = gethrtime(); for (i = 0; i < iters; i++) getpid(); end = gethrtime(); printf("Avg getpid() time = %lld nsec\n", (end - start) / iters);ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT-Level | MT-Safe |
+---------------+-----------------+
SEE ALSO
proc(1),
adjtime(2),
gettimeofday(3C),
settimeofday(3C),
attributes(7)NOTES
Although the units of hi-res time are always the same (nanoseconds),
the actual resolution is hardware dependent. Hi-res time is
guaranteed to be monotonic (it won't go backward, it won't
periodically wrap) and linear (it won't occasionally speed up or slow
down for adjustment, like the time of day can), but not necessarily
unique: two sufficiently proximate calls may return the same value.
September 7, 2004 GETHRTIME(3C)