gethrtime(3C)gethrtime(3C)NAMEgethrtime() - get high resolution time
The function returns the current high-resolution real time. Time is
expressed as nanoseconds since a certain time in the past. This API
uses a fast light weight system call to get the nanoseconds from a cer‐
tain time. It is not correlated in any way to the time of day. This
API is used for performance measurement tasks and is used for cheap and
accurate interval timing.
is a signed 64-bit number.
Upon successful completion, returns a number of nanoseconds. Other‐
wise, a value of -1 is returned.
This API will only be available if the application is being compiled in
-Ae mode (extended ANSI) because 64-bit integer numbers are not avail‐
able in -Aa (ANSI) mode. Please refer to cc(1).
When the time returned from is obtained in each of the two threads of
execution, a comparison of the two return values may give the appear‐
ance that time is different across each of the threads and may even
appear to be going backwards.
The following code fragment measures the average cost of
hrtime_t begin, end;
int i, count = 1000;
begin = gethrtime();
for (i = 0; i < count; i++)
end = gethrtime();
printf("Avg getgid() time = %lld nsec", (end - begin)/count );