summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-12-20 00:58:53 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-12-20 00:58:53 +0000
commit554368e4d988be8d1584381a5b0fe7992351d5a2 (patch)
treeff31ba825cb861e5c23ddf9f95ae8959ace30a3c /llvm
parent47dff91dc2e5d419cd6e58788ba6a2f0b9383d78 (diff)
downloadbcm5719-llvm-554368e4d988be8d1584381a5b0fe7992351d5a2.tar.gz
bcm5719-llvm-554368e4d988be8d1584381a5b0fe7992351d5a2.zip
For PR351:
* Add GetMallocUsage as a wrapper around mallinfo() * Add GetTotalMemoryUsage to get approximate RSS size * Add GetTimeUsage to get elapsed/system/user time llvm-svn: 19051
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/System/Process.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/include/llvm/System/Process.h b/llvm/include/llvm/System/Process.h
index 729c000e38d..56028fb7bc4 100644
--- a/llvm/include/llvm/System/Process.h
+++ b/llvm/include/llvm/System/Process.h
@@ -14,6 +14,8 @@
#ifndef LLVM_SYSTEM_PROCESS_H
#define LLVM_SYSTEM_PROCESS_H
+#include "llvm/System/TimeValue.h"
+
namespace llvm {
namespace sys {
@@ -32,6 +34,35 @@ namespace sys {
/// @brief Get the virtual memory page size
static unsigned GetPageSize();
+ /// This static function will return the total amount of memory allocated
+ /// by the process. This only counts the memory allocated via the malloc,
+ /// calloc and realloc functions and includes any "free" holes in the
+ /// allocated space.
+ /// @throws nothing
+ /// @brief Return process memory usage.
+ static uint64_t GetMallocUsage();
+
+ /// This static function will return the total memory usage of the
+ /// process. This includes code, data, stack and mapped pages usage. Notei
+ /// that the value returned here is not necessarily the Running Set Size,
+ /// it is the total virtual memory usage, regardless of mapped state of
+ /// that memory.
+ static uint64_t GetTotalMemoryUsage();
+
+ /// This static function will set \p user_time to the amount of CPU time
+ /// spent in user (non-kernel) mode and \p sys_time to the amount of CPU
+ /// time spent in system (kernel) mode. If the operating system does not
+ /// support collection of these metrics, a zero TimeValue will be for both
+ /// values.
+ static void GetTimeUsage(
+ TimeValue& elapsed,
+ ///< Returns the TimeValue::now() giving current time
+ TimeValue& user_time,
+ ///< Returns the current amount of user time for the process
+ TimeValue& sys_time
+ ///< Returns the current amount of system time for the process
+ );
+
/// @}
};
}
OpenPOWER on IntegriCloud