diff --git a/src/core/Timer.cc b/src/core/Timer.cc new file mode 100644 index 0000000..812b5e8 --- /dev/null +++ b/src/core/Timer.cc @@ -0,0 +1,31 @@ +#include "Timer.h" +#include +#include + +static long get_usec() +{ + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * 1000000 + tv.tv_usec; +} + +Timer::Timer() +{ + m_start_time = 0; + m_elapsed = 0; +} + +void Timer::start() +{ + m_start_time = get_usec(); +} + +void Timer::stop() +{ + m_elapsed = get_usec() - m_start_time; +} + +void Timer::print() +{ + printf("Elapsed: %ldus\n", m_elapsed); +} diff --git a/src/core/Timer.h b/src/core/Timer.h new file mode 100644 index 0000000..c0c5d50 --- /dev/null +++ b/src/core/Timer.h @@ -0,0 +1,19 @@ +#ifndef TIMER_H +#define TIMER_H + +class Timer +{ +public: + Timer(); + void start(); + void stop(); + void print(); + + long get_elapsed() { return m_elapsed; } + +protected: + long m_start_time; + long m_elapsed; +}; + +#endif