zoukankan      html  css  js  c++  java
  • 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
       

  • 相关阅读:
    MATLAB getframe
    matlab 中 hold on 和hold off的使用
    在MATLAB中得到系统当前日期、时间的函数
    Matlab 中常用的直线与点形表示属性
    matlab中的unique函数详解
    栈的整体作用
    文件句柄、文件描述符与进程和多线程的那些事
    IP头、TCP头、UDP头详解以及定义
    计算机是如何启动的?
    uCOS-II 任务调度机制
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429575.html
Copyright © 2011-2022 走看看