hegexunmeng 发表于 2021-7-3 23:36

定时记录进程的内存

本帖最后由 hegexunmeng 于 2021-7-4 12:17 编辑


第一次发帖~python小萌新,欢迎提建议csdn同步链接: 地址起因:

查询内存泄漏问题,定时记录任务管理器中指定pid进程的内存情况

于是有了这段代码
# -*- encoding:utf-8 -*-

"""
CSDN:https://blog.csdn.net/wudingan?spm=1010.2135.3001.5343
查询内存泄漏问题,定时记录任务管理器中指定pid进程的内存情况
目前是每隔10s执行一次,可以自己自定义
"""
import os
import time
import multiprocessing

#打印所有进程
def getall():
    for line in os.popen('tasklist').readlines():
      print line.decode('gbk')


#获取指定pid的进程内存
def getonetask(pid):
    pid = pid
    for line in os.popen('tasklist').readlines():
      if pid in line:
            #print line# 这个要自己调整一下,先打印一下line, 一点点截取只剩下内存大小
            global infomation
            information = time.strftime("%H:%M:%S", time.localtime()) + "   " + line
            return information


#定时存进一个txt文档里
def saveinformation(information):
    filename = 'savememory'
    with open(filename, 'a') as f:
      print "每隔10s去执行一次"
      f.write(information)


#定时执行
def work():
    while 1:
      info = getonetask("33840")
      saveinformation(info)
      time.sleep(10)


if __name__ == '__main__':
    #getall()
    #infomation = getonetask("33840")# 先通过getAll()获得了自己想要的进程pid
    #saveinformation(infomation)
    p = multiprocessing.Process(target=work(),)
    p.start()
    p.deamon = True


运行结果:


页: [1]
查看完整版本: 定时记录进程的内存