summaryrefslogtreecommitdiff
path: root/timer.c
blob: 6717a29b14bb4bc1feba3435ee49f433d87e9ebc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <sys/resource.h>
//#include <sys/time.h>
#include <time.h>
#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