GCC Code Coverage Report


Directory: ./
File: include/crocoddyl/core/utils/timer.hpp
Date: 2025-01-16 08:47:40
Exec Total Coverage
Lines: 0 12 0.0%
Branches: 0 0 -%

Line Branch Exec Source
1 ///////////////////////////////////////////////////////////////////////////////
2 // BSD 3-Clause License
3 //
4 // Copyright (C) 2019-2020, University of Edinburgh, LAAS-CNRS
5 // Copyright note valid unless otherwise stated in individual files.
6 // All rights reserved.
7 ///////////////////////////////////////////////////////////////////////////////
8
9 #ifndef CROCODDYL_CORE_UTILS_TIMER_H_
10 #define CROCODDYL_CORE_UTILS_TIMER_H_
11
12 #include <ctime>
13
14 namespace crocoddyl {
15
16 class Timer {
17 public:
18 Timer() { clock_gettime(CLOCK_MONOTONIC, &start_); }
19
20 inline void reset() { clock_gettime(CLOCK_MONOTONIC, &start_); }
21
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.;
27 }
28
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;
33 return duration_;
34 }
35
36 private:
37 struct timespec start_;
38 struct timespec finish_;
39 double duration_;
40 };
41 } // namespace crocoddyl
42
43 #endif // CROCODDYL_CORE_UTILS_TIMER_H_
44