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 {
00035 start_ = dtime();
00036 }
00037
00038
00039 void bencher::stop()
00040 {
00041 stop_ = dtime();
00042 }
00043
00044
00045 double bencher::get_time()
00046 {
00047 return stop_ - start_;
00048 }
00049
00050 double bencher::dtime()
00051 {
00052 rusage rusage;
00053 getrusage(RUSAGE_SELF, &rusage);
00054 return ((double)(rusage.ru_utime.tv_sec)
00055 + (double)(rusage.ru_utime.tv_usec) * 1.0e-06);
00056 }
00057 }
00058 # endif // ! VCSN_BENCH
00059 #endif // ! VCSN_TOOLS_BENCHER_HXX