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