diff -r e2f00e438c31 -r 63c138adc477 src/work/marci/time_measure.h --- a/src/work/marci/time_measure.h Thu Apr 15 05:51:12 2004 +0000 +++ b/src/work/marci/time_measure.h Thu Apr 15 06:49:49 2004 +0000 @@ -17,6 +17,18 @@ // return double(tv.tv_sec)+double(tv.tv_usec)/1000000.0; // } + /// Class to store (cpu)time instances. + + /// This class stores five time values. + /// - a real time + /// - a user cpu time + /// - a system cpu time + /// - a user cpu time of children + /// - a system cpu time of children + /// + /// TimeStamp's can be added to or substracted from each other and + /// they can be push to a stream. + class TimeStamp { tms ts; @@ -27,6 +39,7 @@ tms &getTms() {return ts;} const tms &getTms() const {return ts;} double getRealTime() const {return real_time;} + ///Read the current time values of the process. void stamp() { timeval tv; @@ -34,9 +47,10 @@ gettimeofday(&tv, 0);real_time=tv.tv_sec+double(tv.tv_usec)/1e6; } + /// Constructor initializing with zero. TimeStamp() { ts.tms_utime=ts.tms_stime=ts.tms_cutime=ts.tms_cstime=0; real_time=0;} - + ///Constructor initializing with the current time values of the process. TimeStamp(void *) { stamp();} TimeStamp &operator+=(const TimeStamp &b) @@ -68,6 +82,7 @@ return t-=b; } + ///The time ellapsed since the last call of stamp() TimeStamp ellapsed() const { TimeStamp t(NULL); @@ -94,6 +109,7 @@ } }; + ///Class measuring the cpu time and real time usage of the process. class Timer { TimeStamp start_time; @@ -101,8 +117,14 @@ void _reset() {start_time.stamp();} public: + ///Constructor. It starts with zero time counters. Timer() {_reset();} + ///Computes the ellapsed time. + + ///This conversion computes the ellapsed time + ///since the construction of \c t or since + ///the last \c t.reset(). operator TimeStamp () { TimeStamp t; @@ -110,6 +132,7 @@ return t-start_time; } + ///Resets the time counters. TimeStamp reset() { TimeStamp t(start_time); @@ -118,6 +141,7 @@ } }; + ///Prints the time counters. inline std::ostream& operator<<(std::ostream& os,const TimeStamp &t) { long cls = sysconf(_SC_CLK_TCK);