12 using namespace std::chrono;
13 if (duration < microseconds(100)) {
14 std::cout << duration.count() <<
" ns";
16 else if (duration < seconds(5)) {
17 std::cout << std::fixed << std::setprecision(1) << duration.count() / 1.0e6 <<
" ms";
19 else if (duration > seconds(90)) {
21 const auto dur_hours = duration_cast<hours>(duration);
22 const auto dur_mins = duration_cast<minutes>(duration - dur_hours);
23 const auto dur_sec = duration_cast<seconds>(duration - dur_hours - dur_mins);
24 std::cout << std::fixed << std::setprecision(1) << duration.count() / 1.0e9 <<
" s ("
25 << dur_hours.count() <<
"H:" << dur_mins.count() <<
"m:" << dur_sec.count() <<
"s)";
28 std::cout << std::fixed << std::setprecision(1) << duration.count() / 1.0e9 <<
" s";
38 total_time_ += duration;
39 min_time_ =
std::min(duration, min_time_);
41 std::cout <<
"Timer '" << name_ <<
"': (Average: ";
43 std::cout <<
", Min: ";
Clock::time_point TimePoint
void print_duration(Nanoseconds duration)
std::chrono::nanoseconds Nanoseconds