#include #include #include "htab.h" int yak_verbose = 3; static double yak_realtime0; double yak_cputime(void) { struct rusage r; getrusage(RUSAGE_SELF, &r); return r.ru_utime.tv_sec + r.ru_stime.tv_sec + 1e-6 * (r.ru_utime.tv_usec + r.ru_stime.tv_usec); } static inline double yak_realtime_core(void) { struct timeval tp; struct timezone tzp; gettimeofday(&tp, &tzp); return tp.tv_sec + tp.tv_usec * 1e-6; } void yak_reset_realtime(void) { yak_realtime0 = yak_realtime_core(); } double yak_realtime(void) { return yak_realtime_core() - yak_realtime0; } long yak_peakrss(void) { struct rusage r; getrusage(RUSAGE_SELF, &r); #ifdef __linux__ return r.ru_maxrss * 1024; #else return r.ru_maxrss; #endif }