47#define DO_EVERY_TS(secs, currentTime, code) \
49 static double s_lastDone_ = (currentTime); \
50 double s_now_ = (currentTime); \
51 if (s_lastDone_ > s_now_) s_lastDone_ = s_now_; \
52 if (s_now_ - s_lastDone_ > (secs)) { \
54 s_lastDone_ = s_now_; \
62#define DO_EVERY(secs, code) DO_EVERY_TS(secs, g2o::get_time(), code)
66#define MEASURE_TIME(text, code) \
68 double _start_time_ = g2o::get_time(); \
70 G2O_DEBUG("{} took {} sec", text, g2o::get_time() - _start_time_); \
77using seconds = std::chrono::duration<double>;
83 return seconds{std::chrono::system_clock::now().time_since_epoch()}.count();
111#ifndef MEASURE_FUNCTION_TIME
112#define MEASURE_FUNCTION_TIME g2o::ScopeTime scopeTime(__PRETTY_FUNCTION__)
Class to measure the time spent in a scope.
some general case utility functions
double get_monotonic_time()
std::chrono::duration< double > seconds