Program Listing for File timer.hpp#
↰ Return to documentation for file (utils/timer.hpp
)
#pragma once
#include <chrono>
#include <iostream>
#include <string>
#include <thread>
class timer { // NOLINT
public:
explicit timer(const std::string &name = std::string("main"))
: fn_name(name) {
std::cout << "Starting " << name << std::endl;
reset();
}
void reset() { start = std::chrono::high_resolution_clock::now(); }
~timer() {
std::cout << "Elapsed time for " << fn_name << " : " << getDuration()
<< "sec" << std::endl;
}
double getDuration() {
// Get the duration in second
end = std::chrono::high_resolution_clock::now();
double time_span =
std::chrono::duration_cast<std::chrono::duration<double>>(end - start)
.count();
return time_span;
}
private:
std::string fn_name;
std::chrono::high_resolution_clock::time_point start;
std::chrono::high_resolution_clock::time_point end;
};