1 31 32 package org.opencms.monitor; 33 34 43 class CmsMemoryStatus { 44 private int m_count; 45 private long m_freeMemory; 46 47 private long m_maxMemory; 48 private long m_totalMemory; 49 private long m_usage; 50 private long m_usedMemory; 51 52 55 public CmsMemoryStatus() { 56 57 update(); 58 } 59 60 66 public void calculateAverage(CmsMemoryStatus currentStatus) { 67 68 int newCount = m_count + 1; 69 m_maxMemory = ((m_count * m_maxMemory) + currentStatus.getMaxMemory()) / newCount; 70 m_totalMemory = ((m_count * m_totalMemory) + currentStatus.getTotalMemory()) / newCount; 71 m_usedMemory = ((m_count * m_usedMemory) + currentStatus.getUsedMemory()) / newCount; 72 m_freeMemory = ((m_count * m_freeMemory) + currentStatus.getFreeMemory()) / newCount; 73 m_usage = m_usedMemory * 100 / m_maxMemory; 74 m_count = newCount; 75 } 76 77 82 public int getCount() { 83 84 return m_count; 85 } 86 87 92 public long getFreeMemory() { 93 94 return m_freeMemory; 95 } 96 97 102 public long getMaxMemory() { 103 104 return m_maxMemory; 105 } 106 107 112 public long getTotalMemory() { 113 114 return m_totalMemory; 115 } 116 117 122 public long getUsage() { 123 124 return m_usage; 125 } 126 127 132 public long getUsedMemory() { 133 134 return m_usedMemory; 135 } 136 137 140 public void update() { 141 142 m_maxMemory = Runtime.getRuntime().maxMemory() / 1048576; 143 m_totalMemory = Runtime.getRuntime().totalMemory() / 1048576; 144 m_usedMemory = (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1048576; 145 m_freeMemory = m_maxMemory - m_usedMemory; 146 m_usage = m_usedMemory * 100 / m_maxMemory; 147 } 148 } 149 | Popular Tags |