Loading...
Searching...
No Matches

This is a simple thread-safe tool for counting time spent in various chunks of code. This is different from external profiling tools in that it allows the user to count time spent in various bits of code (sub-function granularity) or count how many times certain pieces of code are executed. More...

#include <ompl/tools/debug/Profiler.h>

Classes

class  ScopedBlock
 This instance will call Profiler::begin() when constructed and Profiler::end() when it goes out of scope. More...
 
class  ScopedStart
 This instance will call Profiler::start() when constructed and Profiler::stop() when it goes out of scope. If the profiler was already started, this block's constructor and destructor take no action. More...
 

Public Member Functions

 Profiler (const Profiler &)=delete
 
Profileroperator= (const Profiler &)=delete
 
 Profiler (bool printOnDestroy=false, bool autoStart=false)
 Constructor. It is allowed to separately instantiate this class (not only as a singleton) More...
 
 ~Profiler ()
 Destructor. More...
 
void start ()
 Start counting time.
 
void stop ()
 Stop counting time.
 
void clear ()
 Clear counted time and events.
 
void event (const std::string &name, const unsigned int times=1)
 Count a specific event for a number of times.
 
void average (const std::string &name, const double value)
 Maintain the average of a specific value.
 
void begin (const std::string &name)
 Begin counting time for a specific chunk of code.
 
void end (const std::string &name)
 Stop counting time for a specific chunk of code.
 
void status (std::ostream &out=std::cout, bool merge=true)
 Print the status of the profiled code chunks and events. Optionally, computation done by different threads can be printed separately.
 
void console ()
 Print the status of the profiled code chunks and events to the console (using msg::Console)
 
bool running () const
 Check if the profiler is counting time or not. More...
 

Static Public Member Functions

static ProfilerInstance ()
 Return an instance of the class. More...
 
static void Start ()
 Start counting time. More...
 
static void Stop ()
 Stop counting time. More...
 
static void Clear ()
 Clear counted time and events. More...
 
static void Event (const std::string &name, const unsigned int times=1)
 Count a specific event for a number of times. More...
 
static void Average (const std::string &name, const double value)
 Maintain the average of a specific value. More...
 
static void Begin (const std::string &name)
 Begin counting time for a specific chunk of code. More...
 
static void End (const std::string &name)
 Stop counting time for a specific chunk of code. More...
 
static void Status (std::ostream &out=std::cout, bool merge=true)
 Print the status of the profiled code chunks and events. Optionally, computation done by different threads can be printed separately. More...
 
static void Console ()
 Print the status of the profiled code chunks and events to the console (using msg::Console) More...
 
static bool Running ()
 Check if the profiler is counting time or not. More...
 

Detailed Description

This is a simple thread-safe tool for counting time spent in various chunks of code. This is different from external profiling tools in that it allows the user to count time spent in various bits of code (sub-function granularity) or count how many times certain pieces of code are executed.

Definition at line 72 of file Profiler.h.

Constructor & Destructor Documentation

◆ Profiler()

ompl::tools::Profiler::Profiler ( bool  printOnDestroy = false,
bool  autoStart = false 
)
inline

Constructor. It is allowed to separately instantiate this class (not only as a singleton)

Definition at line 129 of file Profiler.h.

◆ ~Profiler()

ompl::tools::Profiler::~Profiler ( )
inline

Destructor.

Definition at line 137 of file Profiler.h.

Member Function Documentation

◆ Average()

static void ompl::tools::Profiler::Average ( const std::string &  name,
const double  value 
)
inlinestatic

Maintain the average of a specific value.

Definition at line 180 of file Profiler.h.

◆ Begin()

static void ompl::tools::Profiler::Begin ( const std::string &  name)
inlinestatic

Begin counting time for a specific chunk of code.

Definition at line 189 of file Profiler.h.

◆ Clear()

static void ompl::tools::Profiler::Clear ( )
inlinestatic

Clear counted time and events.

Definition at line 156 of file Profiler.h.

◆ Console()

static void ompl::tools::Profiler::Console ( )
inlinestatic

Print the status of the profiled code chunks and events to the console (using msg::Console)

Definition at line 221 of file Profiler.h.

◆ End()

static void ompl::tools::Profiler::End ( const std::string &  name)
inlinestatic

Stop counting time for a specific chunk of code.

Definition at line 195 of file Profiler.h.

◆ Event()

static void ompl::tools::Profiler::Event ( const std::string &  name,
const unsigned int  times = 1 
)
inlinestatic

Count a specific event for a number of times.

Definition at line 171 of file Profiler.h.

◆ Instance()

ompl::tools::Profiler & ompl::tools::Profiler::Instance ( )
static

Return an instance of the class.

Author
Ioan Sucan

Definition at line 40 of file Profiler.cpp.

◆ Running()

static bool ompl::tools::Profiler::Running ( )
inlinestatic

Check if the profiler is counting time or not.

Definition at line 237 of file Profiler.h.

◆ running()

bool ompl::tools::Profiler::running ( ) const
inline

Check if the profiler is counting time or not.

Definition at line 231 of file Profiler.h.

◆ Start()

static void ompl::tools::Profiler::Start ( )
inlinestatic

Start counting time.

Definition at line 144 of file Profiler.h.

◆ Status()

static void ompl::tools::Profiler::Status ( std::ostream &  out = std::cout,
bool  merge = true 
)
inlinestatic

Print the status of the profiled code chunks and events. Optionally, computation done by different threads can be printed separately.

Definition at line 209 of file Profiler.h.

◆ Stop()

static void ompl::tools::Profiler::Stop ( )
inlinestatic

Stop counting time.

Definition at line 150 of file Profiler.h.


The documentation for this class was generated from the following files: