python统计cpu利用率的方法
本文实例讲述了python统计cpu利用率的方法。分享给大家供大家参考。具体实现方法如下:
#-*-coding=utf-8-*- importwin32pdh importtime #Counterpaths PROCESSOR_PERCENT=r'\Processor(_Total)\%ProcessorTime' MEMORY_PERCENT=r'\Memory\%CommittedBytesInUse' MEMORY_COMMITTED=r'\Memory\CommittedBytes' PROCESS_BYTES=lambdax:r'\Process(%s)\PrivateBytes'%x classQuery: def__init__(self): self.counters={} self.query=None self.query=win32pdh.OpenQuery(None,0) defadd_counter(self,path): ifwin32pdh.ValidatePath(path)!=0: raiseException('Invalidpath:%s'%path) counter=win32pdh.AddCounter(self.query,path,0) self.counters[path]=counter defremove_counter(self,path): win32pdh.RemoveCounter(self.counters[path]) delself.counters[path] defget_values(self): values={} win32pdh.CollectQueryData(self.query) forpathinself.counters: status,value=win32pdh.GetFormattedCounterValue( self.counters[path],win32pdh.PDH_FMT_LONG) values[path]=value returnvalues sysinfo_query=Query() sysinfo_query.add_counter(PROCESSOR_PERCENT) sysinfo_query.add_counter(MEMORY_PERCENT) sysinfo_query.get_values() defget_sysinfo(): """Returnatuple(mem_usage,cpu_usage).""" info=sysinfo_query.get_values() returninfo[MEMORY_PERCENT],info[PROCESSOR_PERCENT] listcpu=[] whileTrue: time.sleep(2) x,y=get_sysinfo() listcpu.append(y) iflen(listcpu)==10: icount=0 forcinlistcpu: ifc>4: icount+=1 ificount>5: print"在统计的1分钟内,cpu已经有5次大于4%" listcpu=[] printy
希望本文所述对大家的Python程序设计有所帮助。