18 Timer() { clock_gettime(CLOCK_MONOTONIC, &start_); }
20 inline void reset() { clock_gettime(CLOCK_MONOTONIC, &start_); }
22 inline double get_duration() {
23 clock_gettime(CLOCK_MONOTONIC, &finish_);
24 duration_ =
static_cast<double>(finish_.tv_sec - start_.tv_sec) * 1000000;
25 duration_ +=
static_cast<double>(finish_.tv_nsec - start_.tv_nsec) / 1000;
26 return duration_ / 1000.;
29 inline double get_us_duration() {
30 clock_gettime(CLOCK_MONOTONIC, &finish_);
31 duration_ =
static_cast<double>(finish_.tv_sec - start_.tv_sec) * 1000000;
32 duration_ +=
static_cast<double>(finish_.tv_nsec - start_.tv_nsec) / 1000;
37 struct timespec start_;
38 struct timespec finish_;