溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現統計本機CPU利用率

發布時間:2020-08-04 09:38:51 來源:億速云 閱讀:404 作者:清晨 欄目:編程語言

小編給大家分享一下Python如何實現統計本機CPU利用率,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

模塊win32pdh是Python中的一個模塊,封裝了Windows Performance Data Helpers API。

win32pdh方法

AddCounter    添加一個新計數器 

AddEnglishCounter    通過英文名稱為查詢添加計數器 

RemoveCounter    刪除一個打開的計數器。 

EnumObjectItems    枚舉對象的項目 

EnumObjects    枚舉對象 

OPENQUERY    打開一個新查詢 

CloseQuery    關閉打開的查詢。 

MakeCounterPath    制作完全解決的計數器路徑 

GetCounterInfo    檢索有關計數器的信息,例如數據大小,計數器類型,路徑和用戶提供的數據值。 

GetFormattedCounterValue    檢索格式化的計數器值 

CollectQueryData    收集指定查詢中所有計數器的當前原始數據值,并更新每個計數器的狀態代碼。 

ValidatePath    驗證指定的計數器是否存在于計數器路徑中指定的計算機上。 

ExpandCounterPath    檢查指定的計算機(如果沒有指定本地計算機),則檢查與計數器路徑中的通配符字符串匹配的計數器和計數器實例。 

ParseCounterPath    解析計數器路徑的元素。 

ParseInstanceName    解析實例名稱的元素 

SetCounterScaleFactor    設置在請求格式化計數器值時應用于指定計數器的計算值的比例因子。 

BrowseCounters    顯示計數器瀏覽對話框,以便用戶可以選擇要返回給調用者的計數器。 

ConnectMachine    連接到指定的計算機,并在PDH DLL中創建和初始化計算機條目。 

LookupPerfIndexByName    返回與指定計數器名稱對應的計數器索引。 

LookupPerfNameByIndex    返回與指定索引對應的性能對象名稱。 

完整代碼:python統計cpu利用率

#-*-coding=utf-8-*-
import win32pdh
import time
# Counter paths
PROCESSOR_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' % x
class 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 values
sysinfo_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如何實現統計本機CPU利用率有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女