summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-perf/lib/MemoryGauge.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-perf/lib/MemoryGauge.h')
-rw-r--r--lldb/tools/lldb-perf/lib/MemoryGauge.h63
1 files changed, 62 insertions, 1 deletions
diff --git a/lldb/tools/lldb-perf/lib/MemoryGauge.h b/lldb/tools/lldb-perf/lib/MemoryGauge.h
index eefd274b9c4..821245557ed 100644
--- a/lldb/tools/lldb-perf/lib/MemoryGauge.h
+++ b/lldb/tools/lldb-perf/lib/MemoryGauge.h
@@ -15,7 +15,68 @@
namespace lldb_perf
{
-class MemoryGauge : public Gauge<mach_vm_size_t>
+class MemoryStats
+{
+public:
+ MemoryStats ();
+ MemoryStats (mach_vm_size_t,mach_vm_size_t = 0, mach_vm_size_t = 0);
+ MemoryStats (const MemoryStats& rhs);
+
+ MemoryStats&
+ operator = (const MemoryStats& rhs);
+
+ MemoryStats&
+ operator += (const MemoryStats& rhs);
+
+ MemoryStats
+ operator - (const MemoryStats& rhs);
+
+ MemoryStats&
+ operator / (size_t rhs);
+
+ mach_vm_size_t
+ GetVirtualSize ()
+ {
+ return m_virtual_size;
+ }
+
+ mach_vm_size_t
+ GetResidentSize ()
+ {
+ return m_resident_size;
+ }
+
+ mach_vm_size_t
+ GetMaxResidentSize ()
+ {
+ return m_max_resident_size;
+ }
+
+ void
+ SetVirtualSize (mach_vm_size_t vs)
+ {
+ m_virtual_size = vs;
+ }
+
+ void
+ SetResidentSize (mach_vm_size_t rs)
+ {
+ m_resident_size = rs;
+ }
+
+ void
+ SetMaxResidentSize (mach_vm_size_t mrs)
+ {
+ m_max_resident_size = mrs;
+ }
+
+private:
+ mach_vm_size_t m_virtual_size;
+ mach_vm_size_t m_resident_size;
+ mach_vm_size_t m_max_resident_size;
+};
+
+class MemoryGauge : public Gauge<MemoryStats>
{
private:
enum class State
OpenPOWER on IntegriCloud