5 #include <xgboost/logging.h> 17 using ClockT = std::chrono::high_resolution_clock;
18 using TimePointT = std::chrono::high_resolution_clock::time_point;
19 using DurationT = std::chrono::high_resolution_clock::duration;
20 using SecondsT = std::chrono::duration<double>;
26 elapsed = DurationT::zero();
29 void Start() { start = ClockT::now(); }
34 snprintf(buffer,
sizeof(buffer),
"%s:\t %fs", label.c_str(),
36 LOG(CONSOLE) << buffer;
56 using StatMap = std::map<std::string, std::pair<size_t, size_t>>;
58 std::string label_ =
"";
59 std::map<std::string, Statistics> statistics_map_;
63 std::vector<StatMap> CollectFromOtherRanks()
const;
64 void PrintStatistics(StatMap
const& statistics)
const;
82 void Init(std::string label) { this->label_ = label; }
83 void Start(
const std::string &name);
84 void Stop(
const std::string &name);
85 void StartCuda(
const std::string &name);
86 void StopCuda(
const std::string &name);
std::chrono::duration< double > SecondsT
Definition: timer.h:20
void Reset()
Definition: timer.h:25
void Stop()
Definition: timer.h:30
std::chrono::high_resolution_clock::duration DurationT
Definition: timer.h:19
~Monitor()
Definition: timer.h:74
std::chrono::high_resolution_clock ClockT
Definition: timer.h:17
void Init(std::string label)
Definition: timer.h:82
Timer()
Definition: timer.h:24
double ElapsedSeconds() const
Definition: timer.h:31
namespace of xgboost
Definition: base.h:102
DurationT elapsed
Definition: timer.h:23
Timing utility used to measure total method execution time over the lifetime of the containing object...
Definition: timer.h:47
void Start()
Definition: timer.h:29
TimePointT start
Definition: timer.h:22
Monitor()
Definition: timer.h:67
std::chrono::high_resolution_clock::time_point TimePointT
Definition: timer.h:18
void PrintElapsed(std::string label)
Definition: timer.h:32