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
       

  • 相关阅读:
    html2jspdf文档
    监听localstorage
    vue插件 webpack打包 style中的element样式没有打包进去
    css-loader导致vue中样式失效
    webpack vue-clii-service vite create-react-app umi对比
    react使用antd数据改变视图没更新原因
    npx
    Webpack原理—编写Loader和Plugin
    VUE Element el-input只能输入数字,限制数字长度,重写label宽度
    php--laravel --debug--mac
  • 原文地址:https://www.cnblogs.com/itfenqing/p/4429575.html
Copyright © 2011-2022 走看看