python多cpu计算,python测试cpu性能
模块win32pdh是计算机编程语言中的一个模块,封装了Windows操作系统性能数据帮助器API。
win32pdh方法
AddCounter添加一个新计数器
AddEnglishCounter通过英文名称为查询添加计数器
移除计数器删除一个打开的计数器。
枚举宾语枚举对象的项目
枚举对象枚举对象
打开查询打开一个新查询
事件关闭打开的查询。
MakeCounterPath制作完全解决的计数器路径
GetCounterInfo检索有关计数器的信息,例如数据大小,计数器类型,路径和用户提供的数据值。
GetFormattedCounterValue检索格式化的计数器值
CollectQueryData收集指定查询中所有计数器的当前原始数据值,并更新每个计数器的状态代码。
ValidatePath验证指定的计数器是否存在于计数器路径中指定的计算机上。
ExpandCounterPath检查指定的计算机(如果没有指定本地计算机),则检查与计数器路径中的通配符字符串匹配的计数器和计数器实例。
ParseCounterPath解析计数器路径的元素。
ParseInstanceName解析实例名称的元素
SetCounterScaleFactor设置在请求格式化计数器值时应用于指定计数器的计算值的比例因子。
浏览计数器显示计数器浏览对话框,以便用户可以选择要返回给调用者的计数器。
连接机器连接到指定的计算机,并在PDH DLL中创建和初始化计算机条目。
LookupPerfIndexByName返回与指定计数器名称对应的计数器索引。
LookupPerfNameByIndex返回与指定索引对应的性能对象名称。
完整代码:蟒蛇统计中央处理器利用率
#-*-编码=utf-8-*-
importwin32pdh
进口时间
#反对意见
PROCESSOR _ PERCENT=r \处理器(_总计)\%ProcessorTime
MEMORY _ PERCENT=r \ MEMORY \ % CommittedBytesInUse
MEMORY _ COMMITTED=r \内存\提交字节
PROCESS _ BYTES=lambda x : r \ PROCESS(% s)\ private BYTES % x
classQuery:
def__init__(self):
self.counters={}
self.query=无
self.query=win32pdh .OpenQuery(无,0)
defadd_counter(self,path):
ifwin32pdh .ValidatePath(path)!=0:
引发异常(“无效路径:% s“% path”)
counter=win32pdh .AddCounter(self.query,path,0)
self.counters[path]=counter
defremove_counter(self,path):
win32pdh .拆下计数器(自身。计数器[路径])
德尔赛尔夫。计数器[路径]
defget_values(self):
值={}
win32pdh .CollectQueryData(self.query)
forpathinself.counters:
状态,值=win32pdh .GetFormattedCounterValue(
self.counters[path],win32pdh .PDH _ FMT龙)
值[路径]=值
返回值
sysinfo_query=Query()
sysinfo_query.add_counter(处理器百分比)
sysinfo_query.add_counter(内存百分比)
sysinfo_query.get_values()
defget_sysinfo():
返回元组(mem _ usage,cpu_usage).
info=sysinfo_query.get_values()
退货信息[内存百分比],信息[处理器百分比]
listcpu=[]
whileTrue:
时间。睡眠(2)
x,y=get_sysinfo()
listcpu.append(y)
iflen(listcpu)==10:
icount=0
forcinlistcpu:
ifc4:
icount=1
ificount5:
打印在统计的一分钟内,cpu已经有5次大于4%
listcpu=[]
印刷品
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。