python统计cpu利用率的方法

 更新时间:2015年06月02日 17:21:13   作者:dingding  
这篇文章主要介绍了python统计cpu利用率的方法,涉及Python中win32pdh模块的使用技巧,需要的朋友可以参考下

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

相关文章

  • python中f字符串以及其常见用法总结

    python中f字符串以及其常见用法总结

    python中的f是format函数的缩写,用于格式化输出,下面这篇文章主要给大家介绍了关于python中f字符串以及其常见用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 解析pandas apply() 函数用法(推荐)

    解析pandas apply() 函数用法(推荐)

    这篇文章主要介绍了pandas apply() 函数用法,大家需要掌握函数作为一个对象,能作为参数传递给其它函数,也能作为函数的返回值,具体内容详情跟随小编一起看看吧
    2021-10-10
  • python如何定义一个迭代器去生成偶数数列

    python如何定义一个迭代器去生成偶数数列

    这篇文章主要介绍了python如何定义一个迭代器去生成偶数数列问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python高效地进行字符串操作的技巧分享

    Python高效地进行字符串操作的技巧分享

    Python 提供了强大的字符串操作功能,涵盖从基本的拼接、查找到正则表达式的复杂操作,掌握这些字符串处理技巧,不仅能提高代码效率,还能使开发过程更加顺畅,本文将介绍常见的字符串操作技巧以及如何在实际场景中高效应用它们,需要的朋友可以参考下
    2025-02-02
  • python异常处理并调试

    python异常处理并调试

    这篇文章主要介绍了python异常处理并调试,异常是错误出现时,可以在正常的控制流程之外采取的行为下面我们就来看看python的那些异常,需要的小伙伴可以参考一下
    2022-02-02
  • python如何通过正则匹配指定字符开头与结束提取中间内容

    python如何通过正则匹配指定字符开头与结束提取中间内容

    这篇文章主要介绍了python通过正则匹配指定字符开头与结束提取中间内容的操作方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • 教你怎么用python实现字符串转日期

    教你怎么用python实现字符串转日期

    今天教各位小伙伴怎么用python实现字符串转日期,文中有非常详细的代码示例,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python selenium的这三种等待方式一定要会!

    Python selenium的这三种等待方式一定要会!

    今天给大家带来的是关于Python的相关知识,文章围绕着selenium三种等待方式展开,文中有非常详细的介绍,需要的朋友可以参考下
    2021-06-06
  • Python解决pip install时出现的Could not fetch URL问题

    Python解决pip install时出现的Could not fetch URL问题

    这篇文章主要介绍了Python解决pip install时出现的Could not fetch URL问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Matplotlib绘图基础之刻度详解

    Matplotlib绘图基础之刻度详解

    Matplotlib中刻度是用于在绘图中表示数据大小的工具,通常以整数或小数表示,具体取决于坐标轴的类型和限制,下面就为大家介绍一下Matplotlib中刻度是具体设置与使用吧
    2023-07-07

最新评论