mirror of
https://github.com/chhylp123/hifiasm.git
synced 2026-09-15 12:47:57 +08:00
44 lines
753 B
C++
44 lines
753 B
C++
#include <sys/resource.h>
|
|
#include <sys/time.h>
|
|
#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
|
|
}
|