Python/Windows 子进程检查内存消耗

Python/Windows subprocess check memory consumption

我正在编写一个 Python 脚本,该脚本将另一个程序作为子进程运行,例如

p = subprocess.Popen(
    cmd,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
)
stdout, stderr = p.communicate()
stdout = str(stdout, "utf-8")
stderr = str(stderr, "utf-8")

我需要检查程序使用了多少时间和内存。时间很容易。记性不好。

还有一个问题问了同样的问题,只是没有提到平台,而且所有的答案都是Unix-specific,由此我认为没有跨平台的解决方案。好的,我在 Windows,所以现在我正在寻找(非 WSL)Windows 特定的解决方案。

理想的情况是我可以对允许子进程使用的内存量设置一个硬限制(这样如果它试图超过它就会崩溃),但我认为在这个阶段没有在 Windows 上做到这一点的实用方法。我会选择一种方法来报告它最终使用了多少。

Python 如何在 Windows 上检查子进程使用了​​多少内存?

经过快速搜索,我找到了这个,这是您要找的吗?

import os
import psutil

process = psutil.Process(os.getpid())
print(process.memory_info().rss)