#Example; Get the system memory usage.
import subprocess
class MemUsage(object):
def __init__(self):
self.total=0
self.used=0
self.free=0
self.shared=0
self.buffers=0
self.cached=0
self.init_data()
def init_data(self):
command="free"
process=subprocess.Popen(command,\
shell=True,\
stdout=subprocess.PIPE)
stdout_list=process.communicate()[0].split('\n')
for line in stdout_list:
data=line.split()
try:
print data
if data[0]=="Mem:":
self.total=float(data[1])
self.used=float(data[2])
self.free=float(data[3])
self.shared=float(data[4])
self.buffers=float(data[5])
self.cached=float(data[6])
except IndexError:
continue
def calculate(self):
return ((self.used-self.buffers-self.cached)/self.total)*100
def __repr__(self):
return str(self.calculate())
if __name__=="__main__":
print MemUsage()
Wednesday, February 18, 2009
Python memory Usage
Here is an example in Python of how to retrieve the system memory usage. This example was adapted from an entry on stackoverflow.
Here we have a simple class called MemUsage. The constructor initializes the attributes of the class needed to compute the memory usage. The init_data() method is what MemUsage invokes in order to retrieve the required system data. This is done by using the subprocess module to execute the free command. The resulting data is then mapped to the corresponding attributes. We compute the memory usage as a percentage by subtracting the buffers and cache from the used memory and dividing the result by the total memory.
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment