5 =================================================
7 * @author David Sarrut <david.sarrut@creatis.insa-lyon.fr>
8 * @date 18 Jul 2007 16:27:45
13 =================================================*/
17 #include "clitkTimer.h"
19 //====================================================================
20 /// Constructs the class
21 clitk::Timer::Timer() {
24 //====================================================================
26 //====================================================================
27 void clitk::Timer::Start() {
28 getrusage(RUSAGE_SELF, &mBegin);
31 //====================================================================
33 //====================================================================
34 void clitk::Timer::Stop(bool accumulate) {
35 getrusage(RUSAGE_SELF, &mEnd);
37 mElapsed += (mEnd.ru_utime.tv_usec - mBegin.ru_utime.tv_usec)+
38 (mEnd.ru_utime.tv_sec - mBegin.ru_utime.tv_sec)*1000000;
44 //====================================================================
46 //====================================================================
47 void clitk::Timer::Print(std::ostream & os) const {
48 if (mNumberOfCall != 1) {
49 os << "Timer # = " << mNumberOfCall << std::endl;
50 os << "Timer total = " << mElapsed << " usec \t" << mElapsed/1000000.0 << " sec." << mElapsed/1000000.0/60 << " min."
51 << mElapsed/1000000.0/60/60 << " hours." << std::endl;
53 long double tus = mElapsed/mNumberOfCall;
54 long double ts = tus/1000000.0;
55 long double tm = ts/60.0;
56 long double th = tm/60.0;
57 os << "Timer = " << tus << " usec\t" << ts << " sec.\t" << tm << " min.\t" << th << " hours." << std::endl;
58 // os << "\tmBegin.ru_utime.tv_sec = " << mBegin.ru_utime.tv_sec << std::endl;
59 // os << "\tmEnd.ru_utime.tv_sec = " << mEnd.ru_utime.tv_sec << std::endl;
60 // os << "\tmBegin.ru_utime.tv_usec = " << mBegin.ru_utime.tv_usec << std::endl;
61 // os << "\tmEnd.ru_utime.tv_usec = " << mEnd.ru_utime.tv_usec << std::endl;
63 //====================================================================
65 //====================================================================
66 void clitk::Timer::Print(std::string text, std::ostream & os) const {
70 //====================================================================
72 //====================================================================
73 void clitk::Timer::Reset() {
77 //====================================================================
80 #endif /* end #define CLITKTIMER_CXX */