Python通过PID记录进程的内存占用并保存到csv文件中
Python通过PID记录进程的内存占用并保存到csv文件中,并且可以利用EXCEl的工具将数据转化成图表展示。
1)首先打开任务管理器,获取需要监控内存占用的进程的PID 2)修改下面代码中的PID,再执行代码 1、test3.py
import os
import time
import multiprocessing
# 打印所有进程
def getall():
for line in os.popen(tasklist).readlines():
print(line[:])
# 获取指定pid的进程内存,并将数据分为内存、CPU占用率
def getonetask(pid):
for data in os.popen(tasklist).readlines():
if pid in data:
data = data.split()
msg_mem = data[4]
#print(msg_mem.replace(,,))
wdata = msg_mem.replace(,,) + , + time.strftime("%H:%M:%S",time.localtime())
return wdata
# 定时存进一个csv文档里
def saveinformation(information):
filename = savememory.csv
with open(filename, a+) as f:
"每隔10s去执行一次"
f.write(information)
f.write(
)
# 定时执行
def work():
#先写CSV文件头
initdata = memory,time
with open(savememory.csv, w) as f:
f.write(initdata)
f.write(
)
while 1:
info = getonetask("12672") #根据监控的进程修改
saveinformation(info)
time.sleep(10)
2、main.py
import multiprocessing
import test3
if __name__ == __main__:
p = multiprocessing.Process(target=test3.work(), )
p.start()
p.deamon = True
3)执行结果,下图图表清楚的展示了该进程的内存占用变化 补充另一种方案获取内存占用
使用Psutil这个第三方模块,它不仅可以通过一两行代码实现系统监控,还可以跨平台使用。
# 获取指定pid的进程内存,并将数据分为内存、CPU占用率
def getonetask(pid):
p = psutil.Process(pid)
#获取当前进程的CPU占用
#print(p.cpu_percent(interval=1))
cpu = round(p.cpu_percent(interval=0.1)/psutil.cpu_count(),1)
#获取当前进程的内存占用
memory = round(p.memory_percent(),2)
wdata = str(cpu) + ,+str(memory)+, + time.strftime("%H:%M:%S",time.localtime())
return wdata
参考: https://blog..net/wudingan/article/details/118445233
上一篇:
Python 安装包管理工具 pip
