1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0024804: OSD_PerfMeter documentation is broken

This commit is contained in:
kgv
2014-04-07 16:29:04 +04:00
committed by apn
parent 90e82f7007
commit 91720fc5f3
2 changed files with 148 additions and 147 deletions

View File

@@ -16,146 +16,147 @@
#ifndef _OSD_PERFMETER_H
#define _OSD_PERFMETER_H
/*
Macros for convenient and fast usage of meters.
Define PERF_ENABLE_METERS to make them available.
*/
/**
* Macros for convenient and fast usage of meters.
* Define PERF_ENABLE_METERS to make them available.
*/
#ifdef PERF_ENABLE_METERS
/* PERF_START_METER
Forces meter MeterName to begin to count by remembering
the current data of timer.
Creates new meter if there is no such meter
*/
#define PERF_START_METER(_m_name) { \
static int __iMeter = -1; \
/**
* @def PERF_START_METER(theMeterName)
* Forces meter MeterName to begin to count by remembering the current data of timer.
* Creates new meter if there is no such meter.
*/
#define PERF_START_METER(_m_name) { \
static int __iMeter = -1; \
if (__iMeter >= 0) perf_start_imeter (__iMeter); \
else __iMeter = perf_start_meter (_m_name); \
}
/* PERF_STOP_METER
Forces meter MeterName to stop and cumulate the time elapsed
since the start
*/
#define PERF_STOP_METER(_m_name) { \
static int __iMeter = -1; \
if (__iMeter >= 0) perf_stop_imeter (__iMeter); \
else __iMeter = perf_stop_meter (_m_name); \
/**
* @def PERF_STOP_METER(theMeterName)
* Forces meter MeterName to stop and cumulate the time elapsed since the start.
*/
#define PERF_STOP_METER(_m_name) { \
static int __iMeter = -1; \
if (__iMeter >= 0) perf_stop_imeter (__iMeter); \
else __iMeter = perf_stop_meter (_m_name); \
}
/* PERF_TICK_METER
Increments the counter of meter MeterName without changing
its state with respect to measurement of time.
Creates new meter if there is no such meter.
It is useful to count the number of enters to a part of code
without wasting a time to measure CPU time.
*/
#define PERF_TICK_METER(_m_name) { \
static int __iMeter = -1; \
if (__iMeter >= 0) perf_tick_imeter (__iMeter); \
else __iMeter = perf_tick_meter (_m_name); \
/**
* @def PERF_TICK_METER(theMeterName)
* Increments the counter of meter MeterName without changing its state with respect to measurement of time.
* Creates new meter if there is no such meter.
* It is useful to count the number of enters to a part of code without wasting a time to measure CPU time.
*/
#define PERF_TICK_METER(_m_name) { \
static int __iMeter = -1; \
if (__iMeter >= 0) perf_tick_imeter (__iMeter); \
else __iMeter = perf_tick_meter (_m_name); \
}
/* PERF_CLOSE_METER
Prints out and resets the given meter
*/
/**
* @def PERF_CLOSE_METER(theMeterName)
* Prints out and resets the given meter.
*/
#define PERF_CLOSE_METER(_m_name) perf_close_meter (_m_name);
/* PERF_PRINT_ALL
Prints all existing meters which have been entered at least once
and resets them
*/
#define PERF_PRINT_ALL { \
perf_print_all_meters(); \
/**
* @def PERF_PRINT_ALL
* Prints all existing meters which have been entered at least once and resets them.
*/
#define PERF_PRINT_ALL { \
perf_print_all_meters(); \
}
#else
#define PERF_TICK_METER(_m_name)
#define PERF_START_METER(_m_name)
#define PERF_STOP_METER(_m_name)
#define PERF_CLOSE_METER(_m_name)
#define PERF_PRINT_ALL
#define PERF_TICK_METER(_m_name)
#define PERF_START_METER(_m_name)
#define PERF_STOP_METER(_m_name)
#define PERF_CLOSE_METER(_m_name)
#define PERF_PRINT_ALL
#endif
Standard_EXPORTEXTERNC int perf_init_meter (const char * const MeterName);
/* Creates new counter (if it is absent) identified by
MeterName and resets its cumulative value
Returns : iMeter if OK, -1 if alloc problem
*/
/**
* Creates new counter (if it is absent) identified by theMeterName and resets its cumulative value
* @return meter global identifier if OK, -1 if alloc problem
*/
Standard_EXPORTEXTERNC int perf_init_meter (const char* const theMeterName);
Standard_EXPORTEXTERNC int perf_start_meter (const char * const MeterName);
/* Forces meter MeterName to begin to count by remembering
the current data of timer.
Creates new meter if there is no such meter
Returns : iMeter if OK, -1 if no such meter and cannot create a new one
*/
/**
* Forces meter theMeterName to begin to count by remembering the current data of timer.
* Creates new meter if there is no such meter.
* @return meter global identifier if OK, -1 if no such meter and cannot create a new one
*/
Standard_EXPORTEXTERNC int perf_start_meter (const char* const theMeterName);
Standard_EXPORTEXTERNC int perf_start_imeter (const int iMeter);
/* Forces meter with number iMeter to begin count by remembering
the current data of timer.
Returns : iMeter if OK, -1 if no such meter
*/
/**
* Forces meter with number theMeterId to begin count by remembering the current data of timer.
* @return meter global identifier if OK, -1 if no such meter
*/
Standard_EXPORTEXTERNC int perf_start_imeter (const int theMeterId);
Standard_EXPORTEXTERNC int perf_stop_meter (const char * const MeterName);
/* Forces meter MeterName to stop and cumulate the time elapsed since the start
Returns : iMeter if OK, -1 if no such meter or it is has not been started
*/
/**
* Forces meter theMeterName to stop and cumulate the time elapsed since the start.
* @return meter global identifier if OK, -1 if no such meter or it is has not been started
*/
Standard_EXPORTEXTERNC int perf_stop_meter (const char* const theMeterName);
Standard_EXPORTEXTERNC int perf_stop_imeter (const int iMeter);
/* Forces meter with number iMeter to stop and cumulate the time
elapsed since the start.
Returns : iMeter if OK, -1 if no such meter or it is has not been started
*/
/**
* Forces meter with number theMeterId to stop and cumulate the time elapsed since the start.
* @return meter global identifier if OK, -1 if no such meter or it is has not been started
*/
Standard_EXPORTEXTERNC int perf_stop_imeter (const int theMeterId);
Standard_EXPORTEXTERNC int perf_tick_meter (const char * const MeterName);
/* Increments the counter of meter MeterName without changing
its state with respect to measurement of time.
Creates new meter if there is no such meter
Returns : iMeter if OK, -1 if no such meter and cannot create a new one
*/
/**
* Increments the counter of meter theMeterName without changing its state with respect to measurement of time.
* Creates new meter if there is no such meter.
* @return meter global identifier if OK, -1 if no such meter and cannot create a new one
*/
Standard_EXPORTEXTERNC int perf_tick_meter (const char* const theMeterName);
Standard_EXPORTEXTERNC int perf_tick_imeter (const int iMeter);
/* Increments the counter of meter iMeter without changing
its state with respect to measurement of time.
Returns : iMeter if OK, -1 if no such meter
*/
/**
* Increments the counter of meter theMeterId without changing its state with respect to measurement of time.
* @return meter global identifier if OK, -1 if no such meter
*/
Standard_EXPORTEXTERNC int perf_tick_imeter (const int theMeterId);
Standard_EXPORTEXTERNC int perf_get_meter (const char * const MeterName,
int * nb_enter,
double * seconds);
/* Tells the time cumulated by meter MeterName and the number
of enters to this meter
Output : *nb_enter, *seconds if the pointers != NULL
Returns : iMeter if OK, -1 if no such meter
/**
* Tells the time cumulated by meter theMeterName and the number of enters to this meter.
* @param theNbEnter [OUT] number of enters if the pointer != NULL
* @param theSeconds [OUT] seconds if the pointer != NULL
* @return meter global identifier if OK, -1 if no such meter
*/
Standard_EXPORTEXTERNC int perf_get_meter (const char* const theMeterName,
int* theNbEnter,
double* theSeconds);
Standard_EXPORTEXTERNC void perf_close_meter (const char * const MeterName);
/* Prints on stdout the cumulated time and the number of enters
for the specified meter
*/
/**
* Prints on stdout the cumulated time and the number of enters for the specified meter.
*/
Standard_EXPORTEXTERNC void perf_close_meter (const char* const theMeterName);
Standard_EXPORTEXTERNC void perf_close_imeter (const int iMeter);
/* Prints on stdout the cumulated time and the number of enters
for the specified meter
*/
/**
* Prints on stdout the cumulated time and the number of enters for the specified meter.
*/
Standard_EXPORTEXTERNC void perf_close_imeter (const int theMeterId);
Standard_EXPORTEXTERNC void perf_print_all_meters (void);
/* Prints on stdout the cumulated time and the number of
enters for each alive meter which have the number of enters > 0.
Resets all meters
*/
/**
* Prints on stdout the cumulated time and the number of enters for each alive meter which have the number of enters > 0.
* Resets all meters.
*/
Standard_EXPORTEXTERNC void perf_print_all_meters (void);
Standard_EXPORTEXTERNC void perf_destroy_all_meters (void);
/* Deletes all meters and frees memory
*/
/**
* Deletes all meters and frees memory.
*/
Standard_EXPORTEXTERNC void perf_destroy_all_meters (void);
Standard_EXPORTEXTERNC void perf_print_and_destroy (void);
/* ATTENTION !!!
This func calls both perf_print_all_meters() and perf_destroy_all_meters()
and is called automatically at the end of a program
via system call atexit()
*/
/**
* ATTENTION!!!
* This func calls both perf_print_all_meters() and perf_destroy_all_meters()
* and is called automatically at the end of a program via system call atexit().
*/
Standard_EXPORTEXTERNC void perf_print_and_destroy (void);
#endif

View File

@@ -18,53 +18,53 @@
#include <OSD_PerfMeter.h>
// This class enables measuring the CPU time between two points of code
// execution, regardless of the scope of these points of code. A meter is
// identified by its name (string of chars). So multiple objects in various
// places of user code may point to the same meter. The results will be
// printed on stdout upon finish of the program. For details see
// OSD_PerfMeter.h
//! This class enables measuring the CPU time between two points of code execution, regardless of the scope of these points of code.
//! A meter is identified by its name (string). So multiple objects in various places of user code may point to the same meter.
//! The results will be printed on stdout upon finish of the program.
//! For details see OSD_PerfMeter.h
class OSD_PerfMeter
{
class OSD_PerfMeter {
public:
public:
// ---------- PUBLIC METHODS ----------
//! Constructs a void meter (to further call Init and Start)
OSD_PerfMeter() : myIMeter(-1) {}
OSD_PerfMeter () : myIMeter(-1) {}
// constructs a void meter (to further call Init and Start)
OSD_PerfMeter (const char* meter, const unsigned autoStart = 1)
: myIMeter(perf_get_meter(meter,0,0)) {
if (myIMeter < 0) myIMeter = perf_init_meter(meter);
if (autoStart) Start();
}
// constructs and starts (if autoStart is true) the named meter
void Init (const char* meter) {
myIMeter = perf_get_meter(meter,0,0);
if (myIMeter < 0) myIMeter = perf_init_meter(meter);
//! Constructs and starts (if autoStart is true) the named meter
OSD_PerfMeter (const char* theMeter,
const bool theToAutoStart = true)
: myIMeter (perf_get_meter (theMeter, 0, 0))
{
if (myIMeter < 0) myIMeter = perf_init_meter (theMeter);
if (theToAutoStart) Start();
}
// prepares the named meter
void Start () const { perf_start_imeter(myIMeter); }
// starts the meter
//! Prepares the named meter
void Init (const char* theMeter)
{
myIMeter = perf_get_meter (theMeter, 0, 0);
if (myIMeter < 0) myIMeter = perf_init_meter (theMeter);
}
void Stop () const { perf_stop_imeter(myIMeter); }
// stops the meter
//! Starts the meter
void Start() const { perf_start_imeter(myIMeter); }
void Tick () const { perf_tick_imeter(myIMeter); }
// increments the counter w/o time measurement
//! Stops the meter
void Stop() const { perf_stop_imeter(myIMeter); }
void Flush () const { perf_close_imeter(myIMeter); }
// outputs the meter data and resets it to initial state
//! Increments the counter w/o time measurement
void Tick() const { perf_tick_imeter(myIMeter); }
virtual ~OSD_PerfMeter () { if (myIMeter >= 0) Stop(); }
// assures stopping upon destruction
//! Outputs the meter data and resets it to initial state
void Flush() const { perf_close_imeter(myIMeter); }
protected:
// ---------- PROTECTED FIELDS ----------
//! Assures stopping upon destruction
virtual ~OSD_PerfMeter() { if (myIMeter >= 0) Stop(); }
protected:
int myIMeter;
};
#endif
#endif // OSD_PerfMeter_HeaderFile