A versatile "profiler" that logs the time spent within each pair of calls to enter(X)-leave(X), among other stats.
The results can be dumped to cout or to Visual Studio's output panel. Recursive methods are supported with no problems, that is, calling "enter(X) enter(X) ... leave(X) leave(X)".
This class can be also used to monitorize min/mean/max/total stats of any user-provided parameters via the method CTimeLogger::registerUserMeasure()
Definition at line 35 of file CTimeLogger.h.
#include <mrpt/utils/CTimeLogger.h>
Classes | |
struct | TCallData |
Data of all the calls: More... | |
struct | TCallStats |
Data of each call section: # of calls, minimum, maximum, average and overall execution time (in seconds) More... | |
Public Member Functions | |
CTimeLogger (bool enabled=true) | |
virtual | ~CTimeLogger () |
Default constructor. More... | |
std::string | getStatsAsText (const size_t column_width=80) const |
Dump all stats to a multi-line text string. More... | |
void | getStats (std::map< std::string, TCallStats > &out_stats) const |
Returns all the current stats as a map: section_name => stats. More... | |
void | dumpAllStats (const size_t column_width=80) const |
Dump all stats through the CDebugOutputCapable interface. More... | |
void | clear (bool deep_clear=false) |
Resets all stats. By default (deep_clear=false), all section names are remembered (not freed) so the cost of creating upon the first next call is avoided. More... | |
void | enable (bool enabled=true) |
void | disable () |
void | saveToCSVFile (const std::string &csv_file) const |
Dump all stats to a Comma Separated Values (CSV) file. More... | |
void | registerUserMeasure (const char *event_name, const double value) |
void | enter (const char *func_name) |
Start of a named section. More... | |
double | leave (const char *func_name) |
End of a named section. More... | |
double | getMeanTime (const std::string &name) const |
Return the mean execution time of the given "section", or 0 if it hasn't ever been called "enter" with that section name. More... | |
Static Public Member Functions | |
static void | printf_debug (const char *frmt,...) |
Sends a formated text to "debugOut" if not NULL, or to cout otherwise. More... | |
Private Member Functions | |
void | do_enter (const char *func_name) |
double | do_leave (const char *func_name) |
Private Attributes | |
CTicTac | m_tictac |
bool | m_enabled |
std::map< std::string, TCallData > | m_data |
mrpt::utils::CTimeLogger::CTimeLogger | ( | bool | enabled = true | ) |
|
virtual |
Default constructor.
Destructor
void mrpt::utils::CTimeLogger::clear | ( | bool | deep_clear = false | ) |
Resets all stats. By default (deep_clear=false), all section names are remembered (not freed) so the cost of creating upon the first next call is avoided.
|
inline |
Definition at line 72 of file CTimeLogger.h.
|
private |
|
private |
void mrpt::utils::CTimeLogger::dumpAllStats | ( | const size_t | column_width = 80 | ) | const |
Dump all stats through the CDebugOutputCapable interface.
|
inline |
Definition at line 71 of file CTimeLogger.h.
|
inline |
Start of a named section.
Definition at line 77 of file CTimeLogger.h.
Referenced by mrpt::bayes::detail::addNewLandmarks(), and mrpt::graphslam::optimize_graph_spa_levmarq().
double mrpt::utils::CTimeLogger::getMeanTime | ( | const std::string & | name | ) | const |
Return the mean execution time of the given "section", or 0 if it hasn't ever been called "enter" with that section name.
void mrpt::utils::CTimeLogger::getStats | ( | std::map< std::string, TCallStats > & | out_stats | ) | const |
Returns all the current stats as a map: section_name => stats.
std::string mrpt::utils::CTimeLogger::getStatsAsText | ( | const size_t | column_width = 80 | ) | const |
Dump all stats to a multi-line text string.
|
inline |
End of a named section.
Definition at line 82 of file CTimeLogger.h.
Referenced by mrpt::bayes::detail::addNewLandmarks(), and mrpt::graphslam::optimize_graph_spa_levmarq().
|
staticinherited |
Sends a formated text to "debugOut" if not NULL, or to cout otherwise.
Referenced by mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute().
void mrpt::utils::CTimeLogger::registerUserMeasure | ( | const char * | event_name, |
const double | value | ||
) |
void mrpt::utils::CTimeLogger::saveToCSVFile | ( | const std::string & | csv_file | ) | const |
Dump all stats to a Comma Separated Values (CSV) file.
|
private |
Definition at line 52 of file CTimeLogger.h.
|
private |
Definition at line 39 of file CTimeLogger.h.
|
private |
Definition at line 38 of file CTimeLogger.h.
Page generated by Doxygen 1.8.15 for MRPT 1.4.0 SVN: at Sun Mar 24 23:21:48 UTC 2019 |