17#define __WIN32_WINNT 0x0600
32#include <sys/resource.h>
52 GetSystemTimeAsFileTime (&f);
54 t.LowPart = f.dwLowDateTime;
55 t.HighPart = f.dwHighDateTime;
56 double res = (__int64) t.QuadPart;
63 FILETIME fc, fe, fu, fs;
64 if (GetProcessTimes (GetCurrentProcess (), &fc, &fe, &fu, &fs)) {
66 u.LowPart = fu.dwLowDateTime;
67 u.HighPart = fu.dwHighDateTime;
68 s.LowPart = fs.dwLowDateTime;
69 s.HighPart = fs.dwHighDateTime;
70 res = (__int64) u.QuadPart + (__int64) s.QuadPart;
80 if (gettimeofday (&tv, 0))
82 return 1e-6 * tv.tv_usec + tv.tv_sec;
92 if (getrusage (RUSAGE_SELF, &u))
94 res = u.ru_utime.tv_sec + 1e-6 * u.ru_utime.tv_usec;
95 res += u.ru_stime.tv_sec + 1e-6 * u.ru_stime.tv_usec;
114 PROCESS_MEMORY_COUNTERS pmc;
115 if (GetProcessMemoryInfo (GetCurrentProcess (), &pmc,
sizeof (pmc))) {
116 return pmc.WorkingSetSize;
122 PROCESS_MEMORY_COUNTERS pmc;
123 if (GetProcessMemoryInfo (GetCurrentProcess (), &pmc,
sizeof (pmc))) {
124 return pmc.PeakWorkingSetSize;
135 if (getrusage (RUSAGE_SELF, &u))
137 return ((uint64_t) u.ru_maxrss) << 10;
149 snprintf (path,
sizeof path,
"/proc/%" PRId64
"/statm",
150 (int64_t) getpid ());
151 FILE *
file = fopen (path,
"r");
155 int scanned = fscanf (
file,
"%" PRIu64
" %" PRIu64
"", &dummy, &rss);
157 return scanned == 2 ? rss * sysconf (_SC_PAGESIZE) : 0;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
uint64_t current_resident_set_size()
double absolute_process_time()
uint64_t maximum_resident_set_size()
double absolute_real_time()
double process_time() const