14 #ifndef MLPACK_CORE_UTILITIES_TIMERS_HPP 15 #define MLPACK_CORE_UTILITIES_TIMERS_HPP 28 #if !defined(HAVE_UINT64_T) 29 #if SIZEOF_UNSIGNED_LONG == 8 30 typedef unsigned long uint64_t;
32 typedef unsigned long long uint64_t;
33 #endif // SIZEOF_UNSIGNED_LONG 34 #endif // HAVE_UINT64_T 60 static void Start(
const std::string& name);
70 static void Stop(
const std::string& name);
77 static std::chrono::microseconds
Get(
const std::string& name);
100 static std::map<std::string, std::chrono::microseconds>
GetAllTimers();
114 std::map<std::string, std::chrono::microseconds>
GetAllTimers();
128 std::chrono::microseconds
Get(
const std::string& timerName);
136 static std::string Print(
const std::chrono::microseconds& totalDuration);
147 void Start(
const std::string& timerName,
148 const std::thread::id& threadId = std::thread::id());
156 void Stop(
const std::string& timerName,
157 const std::thread::id& threadId = std::thread::id());
162 void StopAllTimers();
165 std::atomic<bool>&
Enabled() {
return enabled; }
171 std::map<std::string, std::chrono::microseconds> timers;
173 std::mutex timersMutex;
175 std::map<std::thread::id, std::map<std::string,
176 std::chrono::high_resolution_clock::time_point>> timerStartTime;
179 std::atomic<bool> enabled;
185 #endif // MLPACK_CORE_UTILITIES_TIMERS_HPP static std::chrono::microseconds Get(const std::string &name)
Get the value of the given timer.
bool Enabled() const
Get whether or not timing is enabled.
Linear algebra utility functions, generally performed on matrices or vectors.
static void Stop(const std::string &name)
Stop the given timer.
static std::map< std::string, std::chrono::microseconds > GetAllTimers()
Returns a copy of all the timers used via this interface.
Timers()
Default to disabled.
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.
static void DisableTiming()
Disable timing of mlpack programs.
static void Start(const std::string &name)
Start the given timer.
std::atomic< bool > & Enabled()
Modify whether or not timing is enabled.