I am trying to calculate the number of ticks a function uses to run and to do so an using the clock()
function like so:
unsigned long time = clo
There are a number of more accurate timers in POSIX.
gettimeofday()
(but not necessarily so widely available; on an old version of Solaris, requires -lposix4
to link), with nanosecond resolution.There are other sub-second timers of greater or lesser antiquity, portability, and resolution, including:
CLK_TCK
or HZ
. Note that this measures CPU time for parent and child processes.Do not use ftime()
or times()
unless there is nothing better. The ultimate fallback, but not meeting your immediate requirements, is
The clock()
function reports in units of CLOCKS_PER_SEC
, which is required to be 1,000,000 by POSIX, but the increment may happen less frequently (100 times per second was one common frequency). The return value must be defined by CLOCKS_PER_SEC
to get time in seconds.