Timer Class Referenceabstract Wrapper for the system time query methods. More...
Inheritance diagram for Timer:
![]()
Detailed DescriptionWrapper for the system time query methods. In C or C++ programs, the usual way to measure time intervals, e.g., running times of some complex computations, is to call one of the provided system functions like clock(), time(), times(), gettimeofday(), getrusage() etc. By these functions one can gather information about the process' user and system time and the system clock (real time). Unfortunately, these functions are rather clumsy. The programmer determines computation times by querying a (virtual) clock value at the beginning and another one at the end of some computation and converting the difference of these values into seconds. Some functions impose restrictions; for instance, the values of the ANSI C function clock() are of high resolution but will wrap around after about 36 minutes (cpu time). Most timing functions take some data structure as argument that has to be allocated before the call and from which the user has to pick up the information of interest after the call. Problems can arise when porting programs to other operating systems that do not support standards like POSIX etc. In order to simplify measuring computation times and to hide the system-dependencies involved, a concept of timers accounting the process' system and real time is implemented. C and C++ interfaces are provided as a set of functions operating on timers and a timer class respectively. Look into the file timerfactory.h to see how to switch between different timing types or to disable timing altogether. The idea is to provide a type Timer for objects that act like a stopwatch. Operations on such an objects include: start accounting time, stop accounting, read the actual time account and reset the objects time account to zero. After initialization, accounting for the time can be started by calling a function start(). Accounting is suspended by calling a function stop() and can be resumed at any time by calling start() again. For convenience, the actually accounted user time is returned by stop() too. Function reset() re-initializes a timer clearing all time accounts. Member Enumeration Documentation
Constructor & Destructor Documentation
Definition at line 124 of file timer.h. References Timer::getLastTimes(), Timer::lastTime(), Timer::realTimeLast(), Timer::reset(), Timer::start(), Timer::stop(), Timer::time(), and Timer::type(). Referenced by main(), SLUFactor::~SLUFactor(), SPxSimplifier::~SPxSimplifier(), SPxSolver::~SPxSolver(), and SoPlex::Statistics::~Statistics(). Member Function Documentationreturn accounted time. get accounted user, system, or real time when ticks were updated last Referenced by Timer::~Timer().
return last accounted time without rechecking the clock Implemented in UserTimer, WallclockTimer, and NoTimer. Referenced by Timer::~Timer().
return accounted real time without rechecking the clock Referenced by Timer::~Timer().
initialize timer, set timing accounts to zero. Implemented in UserTimer, WallclockTimer, and NoTimer. Referenced by SoPlex::Statistics::clearAllData(), SoPlex::Statistics::clearSolvingData(), SLUFactor::resetCounters(), SLUFactorRational::resetCounters(), SLUFactor::resetFactorTime(), SLUFactorRational::resetFactorTime(), SLUFactor::resetSolveTime(), SLUFactorRational::resetSolveTime(), SPxMainSM::simplify(), SPxSolver::solve(), and Timer::~Timer().
start timer, resume accounting user, system and real time. Implemented in UserTimer, WallclockTimer, and NoTimer. Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_solveRational(), SoPlex::_solveReal(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_syncLPRational(), SoPlex::_syncLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxBasis::change(), CLUFactorRational::factor(), CLUFactor::factor(), SoPlex::loadSettingsFile(), main(), SoPlex::readBasisFile(), SPxMainSM::simplify(), SPxSolver::solve(), SLUFactor::solve2right4update(), SLUFactorRational::solve2right4update(), SLUFactor::solve3right4update(), SLUFactorRational::solve3right4update(), SLUFactor::solveLeft(), SLUFactorRational::solveLeft(), SLUFactor::solveRight(), SLUFactorRational::solveRight(), SLUFactor::solveRight4update(), SLUFactorRational::solveRight4update(), and Timer::~Timer().
stop timer, return accounted user time. Implemented in UserTimer, WallclockTimer, and NoTimer. Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_lift(), SoPlex::_performOptIRStable(), SoPlex::_preprocessAndSolveReal(), SoPlex::_project(), SoPlex::_readFileRational(), SoPlex::_readFileReal(), SoPlex::_reconstructSolutionRational(), SoPlex::_solveRational(), SoPlex::_solveReal(), SoPlex::_solveRealForRational(), SoPlex::_solveRealLPAndRecordStatistics(), SoPlex::_syncLPRational(), SoPlex::_syncLPReal(), SoPlex::_transformEquality(), SoPlex::_transformFeasibility(), SoPlex::_transformUnbounded(), SoPlex::_untransformEquality(), SoPlex::_untransformFeasibility(), SoPlex::_untransformUnbounded(), SPxBasis::change(), CLUFactorRational::factor(), CLUFactor::factor(), SoPlex::loadSettingsFile(), main(), SoPlex::readBasisFile(), SPxMainSM::simplify(), SPxSolver::solve(), SLUFactor::solve2right4update(), SLUFactorRational::solve2right4update(), SLUFactor::solve3right4update(), SLUFactorRational::solve3right4update(), SLUFactor::solveLeft(), SLUFactorRational::solveLeft(), SLUFactor::solveRight(), SLUFactorRational::solveRight(), SLUFactor::solveRight4update(), SLUFactorRational::solveRight4update(), and Timer::~Timer().
Implemented in UserTimer, WallclockTimer, and NoTimer. Referenced by SoPlex::_factorizeColumnRational(), SoPlex::_isSolveStopped(), SoPlex::_performOptIRStable(), SoPlex::_solveRealLPAndRecordStatistics(), SLUFactorRational::getFactorTime(), SLUFactor::getFactorTime(), SLUFactor::getSolveTime(), SLUFactorRational::getSolveTime(), SPxBasis::getTotalUpdateTime(), main(), SoPlex::Statistics::print(), SoPlex::printShortStatistics(), SoPlex::solveTime(), CLUFactorRational::timeLimitReached(), SPxSimplifier::timeUsed(), and Timer::~Timer().
return type of timer Implemented in UserTimer, WallclockTimer, and NoTimer. Referenced by TimerFactory::switchTimer(), and Timer::~Timer(). Member Data Documentation
status of the timer timer status Referenced by Timer::operator=(), WallclockTimer::reset(), UserTimer::reset(), WallclockTimer::start(), UserTimer::start(), WallclockTimer::stop(), UserTimer::stop(), WallclockTimer::time(), and UserTimer::time(). |