11 explicit ThreadTimer(
bool measure_process_cpu_time_)
12 : measure_process_cpu_time(measure_process_cpu_time_) {}
25 start_real_time_ = ChronoClockNow();
26 start_cpu_time_ = ReadCpuTimerOfChoice();
33 real_time_used_ += ChronoClockNow() - start_real_time_;
37 std::max<double>(ReadCpuTimerOfChoice() - start_cpu_time_, 0);
41 void SetIterationTime(
double seconds) { manual_time_used_ += seconds; }
43 bool running()
const {
return running_; }
46 double real_time_used()
const {
48 return real_time_used_;
52 double cpu_time_used()
const {
54 return cpu_time_used_;
58 double manual_time_used()
const {
60 return manual_time_used_;
64 double ReadCpuTimerOfChoice()
const {
65 if (measure_process_cpu_time)
return ProcessCPUUsage();
66 return ThreadCPUUsage();
70 const bool measure_process_cpu_time;
72 bool running_ =
false;
73 double start_real_time_ = 0;
74 double start_cpu_time_ = 0;
77 double real_time_used_ = 0;
78 double cpu_time_used_ = 0;
80 double manual_time_used_ = 0;