查找Python进程及其所有子进程使用的总内存

Wil*_*ill 8 python memory parallel-processing fork process

如何找到Python进程及其所有分叉子进程使用的驻留内存总量?

我知道我可以使用psutil,例如,查找当前进程使用的可用物理内存的百分比,如下所示:

import os
import psutil
current_process = psutil.Process(os.getpid())
mem = current_process.memory_percent()
Run Code Online (Sandbox Code Playgroud)

但我正在寻找进程及其子进程使用的总内存,如果有的话.

Tob*_*arg 10

您可以使用psutil.Process.children()(或psutil.Process.get_children()旧的psutil版本)的结果来获取所有子进程并迭代它们.
它可能看起来像:

import os
import psutil
current_process = psutil.Process(os.getpid())
mem = current_process.memory_percent()
for child in current_process.children(recursive=True):
    mem += child.memory_percent()
Run Code Online (Sandbox Code Playgroud)

这将总计来自主进程的子进程的子进程(子进程)和子进程()的子进程的百分比recursive=True.您可以在当前的psutil文档旧文档中找到此功能.

如果你使用比2更旧的psutil版本,你必须使用get_children()而不是children().