00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef IMPBENCHMARK_MACROS_H
00010 #define IMPBENCHMARK_MACROS_H
00011
00012 #include <boost/timer.hpp>
00013
00014
00015
00016
00017 #define IMP_TIME(block, timev) \
00018 { \
00019 boost::timer imp_timer; \
00020 unsigned int imp_reps=0; \
00021 do { \
00022 block; \
00023 ++imp_reps; \
00024 } while (imp_timer.elapsed() < 2.5); \
00025 timev= imp_timer.elapsed()/imp_reps; \
00026 }
00027
00028
00029
00030
00031 #define IMP_TIME_N(block, timev, N) \
00032 { \
00033 boost::timer imp_timer; \
00034 for (unsigned int i=0; i< (N); ++i) { \
00035 block; \
00036 } \
00037 timev= imp_timer.elapsed()/(N); \
00038 }
00039
00040
00041 #endif