1 #ifdef ELAPSED_TIME_IN_SECONDS 2 #undef ELAPSED_TIME_IN_SECONDS 3 #endif 4 5 #ifdef ELAPSED_TIME_IN_uSECONDS 6 #undef ELAPSED_TIME_IN_uSECONDS 7 #endif 8 9 #ifdef WIN32 10 // include headers to use gettimeofday 11 #else 12 #ifdef __GNUC__ 13 #include <sys/time.h> 14 #include <sys/resource.h> 15 #endif 16 #endif 17 18 #ifdef __GNUC__ 19 #ifndef __CMPH_TIME_H__ 20 #define __CMPH_TIME_H__ elapsed_time_in_seconds(double * elapsed_time)21 static inline void elapsed_time_in_seconds(double * elapsed_time) 22 { 23 struct timeval e_time; 24 if (gettimeofday(&e_time, NULL) < 0) { 25 return; 26 } 27 *elapsed_time = (double)e_time.tv_sec + ((double)e_time.tv_usec/1000000.0); 28 } dummy_elapsed_time_in_seconds()29 static inline void dummy_elapsed_time_in_seconds() 30 { 31 } elapsed_time_in_useconds(cmph_uint64 * elapsed_time)32 static inline void elapsed_time_in_useconds(cmph_uint64 * elapsed_time) 33 { 34 struct timeval e_time; 35 if (gettimeofday(&e_time, NULL) < 0) { 36 return; 37 } 38 *elapsed_time = (cmph_uint64)(e_time.tv_sec*1000000 + e_time.tv_usec); 39 } dummy_elapsed_time_in_useconds()40 static inline void dummy_elapsed_time_in_useconds() 41 { 42 } 43 #endif 44 #endif 45 46 #ifdef CMPH_TIMING 47 #ifdef __GNUC__ 48 #define ELAPSED_TIME_IN_SECONDS elapsed_time_in_seconds 49 #define ELAPSED_TIME_IN_uSECONDS elapsed_time_in_useconds 50 #else 51 #define ELAPSED_TIME_IN_SECONDS dummy_elapsed_time_in_seconds 52 #define ELAPSED_TIME_IN_uSECONDS dummy_elapsed_time_in_useconds 53 #endif 54 #else 55 #ifdef __GNUC__ 56 #define ELAPSED_TIME_IN_SECONDS 57 #define ELAPSED_TIME_IN_uSECONDS 58 #else 59 #define ELAPSED_TIME_IN_SECONDS dummy_elapsed_time_in_seconds 60 #define ELAPSED_TIME_IN_uSECONDS dummy_elapsed_time_in_useconds 61 #endif 62 #endif 63