zoukankan      html  css  js  c++  java
  • python统计某一个进程名所占用的内存

    设计思路:

    通过python,执行cmd中tasklist命令,获取要统计的进程的相关信息;通过正则表达式,查找出进程名称、进程pid、内存使用,然后打印出来。

    作为pythoner,有时候需要统计python.exe进程所占用的内存,因此在设计时,通过pid,过滤掉统计内存这个脚本所启用的内存的信息,只统计其他的python.exe的信息。

    具体实现:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # coding:gbk
    import os, re
    import time
    import string
    
    #统计某一个进程名所占用的内存,同一个进程名,可能有多个进程
    def countProcessMemoey(processName):
        pattern = re.compile(r'([^s]+)s+(d+)s.*s([^s]+sK)')
        cmd = 'tasklist /fi "imagename eq ' + processName + '"' + ' | findstr.exe ' + processName
        result = os.popen(cmd).read()
        resultList = result.split("
    ")
    
        for srcLine in resultList:
            srcLine = "".join(srcLine.split('
    '))
            if len(srcLine) == 0:
                break
            m = pattern.search(srcLine)
            if m == None:
                continue
            #由于是查看python进程所占内存,因此通过pid将本程序过滤掉
            if str(os.getpid()) == m.group(2):
                continue
            ori_mem = m.group(3).replace(',','')
            ori_mem = ori_mem.replace(' K','')
            ori_mem = ori_mem.replace(r'sK','')
            memEach = string.atoi(ori_mem)
            print 'ProcessName:'+ m.group(1) + '	PID:' + m.group(2) + '	memory size:%.2f'% (memEach * 1.0 /1024), 'M'
    
        print "*" * 58
    
    if __name__ == '__main__':
        #进程名
        ProcessName = 'python.exe'
        ProcessName2 = "chrome.exe"
    
        while True:
            countProcessMemoey(ProcessName)
            countProcessMemoey(ProcessName2)
            time.sleep(5)
    

    运行结果:

  • 相关阅读:
    ArrayList、Vector、LinkedList的区别联系?
    TFFS格式化到创建成功过程
    C语言中的far关键字
    Android编码规范05
    微信小程序开发总结
    1-2 Mobx 入门实践之TodoList(官方Demo)
    1-1、create-react-app 配置 mobx
    3-0 js基础 语言特性及性能优化
    2-9 js基础 cookie封装
    2-8 js基础 jsonp封装
  • 原文地址:https://www.cnblogs.com/zhbzz2007/p/5394782.html
Copyright © 2011-2022 走看看