跨平台subprocess.Popen资源使用情况

1 投票
1 回答
832 浏览
提问于 2025-04-18 00:19

首先,如果这个问题之前有人问过,我很抱歉重复了,但我在其他地方找不到答案。

我刚开始学习Python,目前正在为一个网页应用程序做一个封装器。这个封装器使用Popen启动一个子进程,然后将关于这个子进程的信息发送到网页应用程序。到目前为止,一切都运行得很好。

我现在唯一想问的是:有没有办法获取子进程的资源使用情况(内存和CPU)?
如果可以的话,我该怎么做?如果能跨平台就最好了,不过针对Windows、Mac和Linux的不同方法也可以。

如果通过子进程无法获取,那我该如何从其他进程中获取资源使用情况呢?

任何帮助都非常感谢!
谢谢你的时间!

1 个回答

0

psutil 是一个可以在不同操作系统上使用的工具,它可以帮助你获取一个子进程的资源使用情况,比如说内存和CPU的使用情况。

import random
import psutil # $ pip install psutil

p = psutil.Process(random.choice(psutil.pids()))
print(p.name())
print(p.cpu_times())
print(p.memory_info())

如果你想获取一个已经存在的 subprocess.Popen 实例的信息,只需要把 popen_instance.pid 传给 psutil.Process 就可以了。你也可以直接使用 psutil.Popen 来创建一个子进程。

撰写回答