Standard C Library Functions gethrtime(3C)
NAME
gethrtime, gethrvtime - get high resolution time
SYNOPSIS
#include
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 arbi-
trary time in the past; it is not correlated in any way to the time of day, and thus is not subject to resetting ordrifting 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(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 7 Sep 2004 1
Standard C Library Functions gethrtime(3C)____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
proc(1), adjtime(2), gettimeofday(3C), settimeofday(3C), attributes(5) NOTESAlthough 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 back-
ward, it won't periodically wrap) and linear (it won't occa-
sionally 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.SunOS 5.11 Last change: 7 Sep 2004 2