From d964be2caa5a1f9837f9b0bb45e6296259e94a19 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sun, 26 Jul 2020 18:56:10 +0000 Subject: [PATCH] getting resident mem at least --- src/stats.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/stats.c b/src/stats.c index 4c4f2486..203bad81 100644 --- a/src/stats.c +++ b/src/stats.c @@ -475,6 +475,10 @@ static void mi_process_info(mi_msecs_t* utime, mi_msecs_t* stime, size_t* peak_r #include #endif +#if defined(__HAIKU__) +#include +#endif + 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); } @@ -494,10 +498,18 @@ static void mi_process_info(mi_msecs_t* utime, mi_msecs_t* stime, size_t* peak_r #else // Haiku does not have (yet?) a way to // get these stats per process + thread_info tid; + area_info mem; + ssize_t c; *peak_rss = 0; *page_faults = 0; *page_reclaim = 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 *utime = timeval_secs(&rusage.ru_utime); *stime = timeval_secs(&rusage.ru_stime);