14 #ifndef MLPACK_CORE_UTILITIES_TIMERS_HPP 15 #define MLPACK_CORE_UTILITIES_TIMERS_HPP 27 #if !defined(HAVE_UINT64_T) 28 #if SIZEOF_UNSIGNED_LONG == 8 29 typedef unsigned long uint64_t;
31 typedef unsigned long long uint64_t;
32 #endif // SIZEOF_UNSIGNED_LONG 33 #endif // HAVE_UINT64_T 59 static void Start(
const std::string& name);
69 static void Stop(
const std::string& name);
76 static std::chrono::microseconds
Get(
const std::string& name);
106 std::map<std::string, std::chrono::microseconds> GetAllTimers();
120 std::chrono::microseconds GetTimer(
const std::string& timerName);
128 void PrintTimer(
const std::string& timerName);
139 void StartTimer(
const std::string& timerName,
140 const std::thread::id& threadId = std::thread::id());
148 void StopTimer(
const std::string& timerName,
149 const std::thread::id& threadId = std::thread::id());
157 bool GetState(
const std::string& timerName,
158 const std::thread::id& threadId = std::thread::id());
163 void StopAllTimers();
166 std::atomic<bool>&
Enabled() {
return enabled; }
172 std::map<std::string, std::chrono::microseconds> timers;
174 std::mutex timersMutex;
176 std::map<std::thread::id, std::map<std::string,
177 std::chrono::high_resolution_clock::time_point>> timerStartTime;
180 std::atomic<bool> enabled;
185 #endif // MLPACK_CORE_UTILITIES_TIMERS_HPP std::atomic< bool > & Enabled()
Modify whether or not timing is enabled.
static std::chrono::microseconds Get(const std::string &name)
Get the value of the given timer.
static void Stop(const std::string &name)
Stop the given timer.
static void EnableTiming()
Enable timing of mlpack programs.
The timer class provides a way for mlpack methods to be timed.
static void ResetAll()
Stop and reset all running timers.
bool Enabled() const
Get whether or not timing is enabled.
Timers()
Default to disabled.
static void DisableTiming()
Disable timing of mlpack programs.
static void Start(const std::string &name)
Start the given timer.