跨平台subprocess.Popen资源使用情况
首先,如果这个问题之前有人问过,我很抱歉重复了,但我在其他地方找不到答案。
我刚开始学习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
来创建一个子进程。