【发布时间】:2022-08-03 13:03:09
【问题描述】:
我写了一个py包含以下两行的脚本:
import os
os.system(\"python3 R.py\")
我预计我的系统在运行此脚本几分钟后会耗尽内存,但它的响应速度仍然令人惊讶。有人知道,这里发生了什么样的 Python 解释器魔法?
-
您使用的是什么操作系统?你用的是什么版本的python?
-
出于显而易见的原因,我很犹豫是否要亲自尝试,但是您可以使用
ps查看您的机器上实际运行了多少 Python 解释器吗? -
内存方面,如果您的机器使用 fork-on-write,则每个进程将共享相同的内存,直到它实际尝试写入自己的地址空间。这里使用的唯一资源可能是进程表中的条目(我本以为会很快填满)。
-
它的可能的“最后一个”进程上的
os.system刚刚阻塞,直到操作系统允许派生更多进程。 -
在 Windows 10 上,当使用任务管理器查看进程时,从我的硬件几秒钟开始,它就用这两行创建了 150 多个相同脚本的进程。通过添加
print(os.getpid())可以看出它们都是不同的进程。
标签: python python-3.x recursion operating-system