十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
小编给大家分享一下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利用率有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!