From ed5e7bf422d6b908eb2f5bb55c3340d0e16f8efe Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Mon, 20 Dec 2004 16:33:37 +0000 Subject: [PATCH] Provide a getrusage based implementation of GetTotalMemoryUsage and use the ru_maxrss field as an approximation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19072 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Unix/Process.cpp | 4 ++++ lib/System/Unix/Process.inc | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/lib/System/Unix/Process.cpp b/lib/System/Unix/Process.cpp index c9507cb4e7b..eef6535ee90 100644 --- a/lib/System/Unix/Process.cpp +++ b/lib/System/Unix/Process.cpp @@ -74,6 +74,10 @@ Process::GetTotalMemoryUsage() #if defined(HAVE_MALLINFO) struct mallinfo mi = ::mallinfo(); return mi.uordblks + mi.hblkhd; +#elif defined(HAVE_GETRUSAGE) + struct rusage usage; + ::getrusage(RUSAGE_SELF, &usage); + return usage.ru_maxrss; #else #warning Cannot get total memory size on this platform return 0; diff --git a/lib/System/Unix/Process.inc b/lib/System/Unix/Process.inc index c9507cb4e7b..eef6535ee90 100644 --- a/lib/System/Unix/Process.inc +++ b/lib/System/Unix/Process.inc @@ -74,6 +74,10 @@ Process::GetTotalMemoryUsage() #if defined(HAVE_MALLINFO) struct mallinfo mi = ::mallinfo(); return mi.uordblks + mi.hblkhd; +#elif defined(HAVE_GETRUSAGE) + struct rusage usage; + ::getrusage(RUSAGE_SELF, &usage); + return usage.ru_maxrss; #else #warning Cannot get total memory size on this platform return 0;