18 : start_time_in_milliseconds_(0.0), end_time_in_milliseconds_(0.0) {}
23 std::chrono::duration<double, std::milli> current_time =
24 std::chrono::high_resolution_clock::now().time_since_epoch();
25 return current_time.count();
37 return end_time_in_milliseconds_ - start_time_in_milliseconds_;
41 return (end_time_in_milliseconds_ - start_time_in_milliseconds_) / 1000.0;
46 int hours =
static_cast<int>(duration / 3600.0);
47 int minutes =
static_cast<int>((duration - hours * 3600.0) / 60.0);
48 double seconds = duration - hours * 3600.0 - minutes * 60.0;
49 return std::make_tuple(hours, minutes,
seconds);
53 LogInfo(
"{} {:.2f} ms.", timer_info,
54 end_time_in_milliseconds_ - start_time_in_milliseconds_);
58 : scope_timer_info_(scope_timer_info) {
69 double time_to_print ,
71 : fps_timer_info_(fps_timer_info),
72 expectation_(expectation),
73 time_to_print_(time_to_print),
74 events_to_print_(events_to_print),
75 event_fragment_count_(0),
76 event_total_count_(0) {
81 event_fragment_count_++;
85 event_fragment_count_ >= events_to_print_) {
87 if (expectation_ == -1) {
88 LogInfo(
"{} at {:.2f} fps.", fps_timer_info_,
89 double(event_fragment_count_ + 1) /
92 LogInfo(
"{} at {:.2f} fps (progress {:.2f}%).",
93 fps_timer_info_.c_str(),
94 static_cast<double>(event_fragment_count_ + 1) /
96 static_cast<double>(event_total_count_ * 100.0) /
97 static_cast<double>(expectation_));
100 event_fragment_count_ = 0;
FPSTimer(const std::string &fps_timer_info="", int expectation=-1, double time_to_print=3000.0, int events_to_print=100)
ScopeTimer(const std::string &scope_timer_info="")
double GetDurationInMillisecond() const
void Print(const std::string &timer_info) const
double GetDurationInSecond() const
std::tuple< int, int, double > GetDurationInHMS() const
static double GetSystemTimeInMilliseconds()
Generic file read and write utility for python interface.