在 python 中随着时间的推移监视子进程资源

Monitoring subprocess resources over time in python

我目前正在尝试随着时间的推移监视我的子进程的内存使用情况以生成图表。

这段代码似乎可以解决问题,但我真的不喜欢我做的 "over time" 循环,因为你可以看到这是一个基本的 while true 循环。

from subprocess import Popen
import psutil

process = Popen(["python", "dummy_script.py"])
ps = psutil.Process(process.pid)

while process.poll() is None:
    print(ps.memory_percent())

我想调整这段代码,以便能够以固定的时间间隔(例如 1 秒)检查我的子进程的内存使用情况。

这是我第一次同时使用 subprocesspsutil,所以我很难理解如何正确地使用它。

注意:这里是 dummy_script.py 没意思

import numpy
import time

result = []
for i in range(10240):
    result.append(numpy.random.bytes(1024*1024))
print(len(result))

让程序在 while 循环中休眠 1 秒

import time

while process.poll() is None:
    print(ps.memory_percent())
    time.sleep(1)