00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_TOOLS_BENCHER_HXX
00018 # define VCSN_TOOLS_BENCHER_HXX
00019
00020 # include <vaucanson/tools/bencher.hh>
00021
00022 # ifdef VCSN_BENCH
00023
00024 namespace vcsn
00025 {
00026
00027 bencher::bencher() : start_(0), stop_(0)
00028 {}
00029
00030 bencher::~bencher()
00031 {}
00032
00033 void bencher::start()
00034 { start_ = dtime(); }
00035
00036
00037 void bencher::stop()
00038 { stop_ = dtime(); }
00039
00040
00041 double bencher::get_time()
00042 { return stop_ - start_; }
00043
00044 double bencher::dtime()
00045 {
00046 double q;
00047 struct rusage rusage;
00048
00049 getrusage(RUSAGE_SELF, &rusage);
00050 q = (double)(rusage.ru_utime.tv_sec);
00051 q = q + (double)(rusage.ru_utime.tv_usec) * 1.0e-06;
00052 return q;
00053 }
00054 }
00055 # endif // ! VCSN_BENCH
00056 #endif // ! VCSN_TOOLS_BENCHER_HXX