37 ChronoTimer(std::string_view in_name =
"");
44 double reading_ms()
const;
45 double lap_reading_ms()
const;
46 std::string reading_str()
const;
47 std::string lap_reading_str()
const;
52 std::chrono::high_resolution_clock::time_point tstart{};
53 std::string convertHR(
double t)
const;
58inline ChronoTimer::ChronoTimer(std::string_view in_name)
59 : name(in_name), running(
false), total_time_ms(0) {
63inline ChronoTimer::~ChronoTimer() {
65 std::cout << name <<
": T = " << reading_str() <<
"\n";
69inline void ChronoTimer::start() {
74 tstart = std::chrono::high_resolution_clock::now();
78inline void ChronoTimer::stop() {
82 double current_time = lap_reading_ms();
86 total_time_ms += current_time;
90inline void ChronoTimer::restart() {
96inline void ChronoTimer::reset() {
102inline double ChronoTimer::lap_reading_ms()
const
110 std::chrono::high_resolution_clock::time_point tcurrent =
111 std::chrono::high_resolution_clock::now();
114 std::chrono::duration_cast<std::chrono::microseconds>(tcurrent - tstart)
117 return ((
double)duration) * 1.0e-3;
121inline double ChronoTimer::reading_ms()
const
125 return lap_reading_ms() + total_time_ms;
129inline std::string ChronoTimer::reading_str()
const {
130 return convertHR(reading_ms());
133inline std::string ChronoTimer::lap_reading_str()
const {
134 return convertHR(lap_reading_ms());
138inline std::string ChronoTimer::convertHR(
double t)
const
148 }
else if (t < 60000) {
151 }
else if (t < 3600000) {
159 std::stringstream ss;
160 ss << std::fixed << std::setprecision(2) << ot;
161 return ss.str() +
" " + un;
In-out (timers, profilers, and read/write data)
Definition ChronoTimer.hpp:9