首页 > 编程 > Python > 正文

python统计cpu利用率的方法

2020-02-23 01:30:05
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表