[llvm-commits] CVS: llvm/include/llvm/System/Process.h

Reid Spencer reid at x10sys.com
Sun Dec 19 16:59:04 PST 2004



Changes in directory llvm/include/llvm/System:

Process.h updated: 1.1 -> 1.2
---
Log message:

For PR351: http://llvm.cs.uiuc.edu/PR351 :
* Add GetMallocUsage as a wrapper around mallinfo()
* Add GetTotalMemoryUsage to get approximate RSS size
* Add GetTimeUsage to get elapsed/system/user time 

---
Diffs of the changes:  (+31 -0)

Index: llvm/include/llvm/System/Process.h
diff -u llvm/include/llvm/System/Process.h:1.1 llvm/include/llvm/System/Process.h:1.2
--- llvm/include/llvm/System/Process.h:1.1	Fri Sep 10 23:18:05 2004
+++ llvm/include/llvm/System/Process.h	Sun Dec 19 18:58:53 2004
@@ -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 @@
       /// @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
+      );
+
     /// @}
   };
 }






More information about the llvm-commits mailing list