32 lines
699 B
C++
32 lines
699 B
C++
#include "timer.h"
|
|
|
|
#include <chrono>
|
|
|
|
Timer::Timer() { start(); };
|
|
|
|
void Timer::start() { start_ = std::chrono::high_resolution_clock::now(); }
|
|
|
|
void Timer::stop() { end_ = std::chrono::high_resolution_clock::now(); }
|
|
|
|
long Timer::us() const {
|
|
return std::chrono::duration_cast<std::chrono::microseconds>(end_ - start_)
|
|
.count();
|
|
}
|
|
|
|
std::ostream &operator<<(std::ostream &os, const Timer &timer) {
|
|
long time = timer.us();
|
|
|
|
if (time >= 1e6) {
|
|
os << time / static_cast<long>(1e6) << " s ";
|
|
time %= static_cast<long>(1e6);
|
|
}
|
|
|
|
if (time >= 1e3) {
|
|
os << time / static_cast<long>(1e3) << " ms ";
|
|
time %= static_cast<long>(1e3);
|
|
}
|
|
|
|
os << time << " µs";
|
|
|
|
return os;
|
|
}
|