getting resident mem at least

This commit is contained in:
David Carlier 2020-07-26 18:56:10 +00:00
parent eb1188a1dd
commit d964be2caa

View File

@ -475,6 +475,10 @@ static void mi_process_info(mi_msecs_t* utime, mi_msecs_t* stime, size_t* peak_r
#include <mach/mach.h> #include <mach/mach.h>
#endif #endif
#if defined(__HAIKU__)
#include <kernel/OS.h>
#endif
static mi_msecs_t timeval_secs(const struct timeval* tv) { static mi_msecs_t timeval_secs(const struct timeval* tv) {
return ((mi_msecs_t)tv->tv_sec * 1000L) + ((mi_msecs_t)tv->tv_usec / 1000L); return ((mi_msecs_t)tv->tv_sec * 1000L) + ((mi_msecs_t)tv->tv_usec / 1000L);
} }
@ -494,10 +498,18 @@ static void mi_process_info(mi_msecs_t* utime, mi_msecs_t* stime, size_t* peak_r
#else #else
// Haiku does not have (yet?) a way to // Haiku does not have (yet?) a way to
// get these stats per process // get these stats per process
thread_info tid;
area_info mem;
ssize_t c;
*peak_rss = 0; *peak_rss = 0;
*page_faults = 0; *page_faults = 0;
*page_reclaim = 0; *page_reclaim = 0;
*peak_commit = 0; *peak_commit = 0;
get_thread_info(find_thread(0), &tid);
while (get_next_area_info(tid.team, &c, &mem) == B_OK) {
*peak_rss += mem.ram_size;
}
#endif #endif
*utime = timeval_secs(&rusage.ru_utime); *utime = timeval_secs(&rusage.ru_utime);
*stime = timeval_secs(&rusage.ru_stime); *stime = timeval_secs(&rusage.ru_stime);