#include //#include #include #include "timer.h" #define TIMER_TYPE CLOCK_PROCESS_CPUTIME_ID struct timespec start_time; void reset_timer() { clock_gettime(TIMER_TYPE, &start_time); } double get_time() { struct timespec t; clock_gettime(TIMER_TYPE, &t); return ((double)(t.tv_sec - start_time.tv_sec) + (double)(t.tv_nsec - start_time.tv_nsec) * 1.e-9); } #if 0 void GetUserTime(struct timeval* time) { struct rusage usage; getrusage(RUSAGE_SELF, &usage); memcpy(time, &usage.ru_utime, sizeof(*time)); } double TimeDifference(const struct timeval * start, const struct timeval * end) { double start_time; double end_time; start_time = start->tv_sec + start->tv_usec * 1e-6; end_time = end->tv_sec + end->tv_usec * 1e-6; return end_time - start_time; } #endif