本文實例講述了python統計cpu利用率的方法。分享給大家供大家參考。具體實現方法如下:
#-*-coding=utf-8-*-import win32pdhimport time# Counter pathsPROCESSOR_PERCENT = r'/Processor(_Total)/% Processor Time'MEMORY_PERCENT = r'/Memory/% Committed Bytes In Use'MEMORY_COMMITTED = r'/Memory/Committed Bytes'PROCESS_BYTES = lambda x: r'/Process(%s)/Private Bytes' % xclass Query:  def __init__(self):    self.counters = {}    self.query = None    self.query = win32pdh.OpenQuery(None, 0)  def add_counter(self, path):    if win32pdh.ValidatePath(path) != 0:      raise Exception('Invalid path: %s' % path)    counter = win32pdh.AddCounter(self.query, path, 0)    self.counters[path] = counter  def remove_counter(self, path):    win32pdh.RemoveCounter(self.counters[path])    del self.counters[path]  def get_values(self):    values = {}    win32pdh.CollectQueryData(self.query)    for path in self.counters:      status, value = win32pdh.GetFormattedCounterValue(          self.counters[path], win32pdh.PDH_FMT_LONG)      values[path] = value    return valuessysinfo_query = Query()sysinfo_query.add_counter(PROCESSOR_PERCENT)sysinfo_query.add_counter(MEMORY_PERCENT)sysinfo_query.get_values()def get_sysinfo():  """Return a tuple (mem_usage, cpu_usage)."""  info = sysinfo_query.get_values()  return info[MEMORY_PERCENT], info[PROCESSOR_PERCENT]listcpu=[]while True:  time.sleep(2)  x,y=get_sysinfo()  listcpu.append(y)  if len(listcpu)==10:    icount=0    for c in listcpu:      if c>4:        icount+=1    if icount>5:      print "在統計的1分鐘內,cpu已經有5次大于4%"    listcpu=[]  print y希望本文所述對大家的Python程序設計有所幫助。
新聞熱點
疑難解答