13 #include <mach/clock.h>
14 #include <mach/mach.h>
37 struct timespec tsstop;
46 #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
49 host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
50 clock_get_time(cclock, &mts);
51 mach_port_deallocate(mach_task_self(), cclock);
52 tsstop.tv_sec = mts.tv_sec;
53 tsstop.tv_nsec = mts.tv_nsec;
55 clock_gettime(CLOCK_REALTIME, &tsstop);
78 #ifdef __MACH__ // OS X does not have clock_gettime, use clock_get_time
81 host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
82 clock_get_time(cclock, &mts);
83 mach_port_deallocate(mach_task_self(), cclock);
87 clock_gettime(CLOCK_REALTIME, &
tsstart);
113 return ((
double)(tsstop.tv_sec -
tsstart.tv_sec)) + ((1e-9) * ((
double)(tsstop.tv_nsec -
tsstart.tv_nsec)));
125 return (((
double)(
cstop -
cstart)) / CLOCKS_PER_SEC);
struct timespec tsstart
starting time
timer()
Default constructor.
double getwct()
Return the elapsed real time.
double getcputime()
Return the cpu time.
bool running
Flag that indicate if the timer is running or not.
clock_t cstart
start time from epoch
clock_t cstop
stop time from epoch
void start()
Start the timer.
void reset()
Reset the timer.
Class for cpu time benchmarking.
void stop()
Stop the timer.