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 settime-
ofday(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
", (end - start) / iters);
ATTRIBUTES
See attributes(5) 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(5)
NOTES
Although the units of hi-res time are always the same (nanoseconds), the actual resolution is hardware dependent. Hi-res time is guaran-
teed 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 adjust-
ment, like the time of day can), but not necessarily unique: two sufficiently proximate calls may return the same value.
SunOS 5.10 7 Sep 2004 gethrtime(3C)