Python 程序完成执行后的清理过程
我有一个python脚本,它运行在一台内存为4GB的旧机器上。当程序完成执行时,我通过注意到内存仍然被占用。我的问题是:如果我使用:Python 程序完成执行后的清理过程,python,python-3.x,Python,Python 3.x,我有一个python脚本,它运行在一台内存为4GB的旧机器上。当程序完成执行时,我通过注意到内存仍然被占用。我的问题是:如果我使用: import sys sys.exit(0) 它是否保证进程在执行后从内存中完全清除?简短版本:否 长版本:我不认为调用sys.exit(0)可以确保在不同于操作系统的级别上处理内存管理 当脚本完成时,python不再控制它(显然) 如果您的脚本在某个时候调用了其他外部脚本或一个您认为可能会篡改内存的奇怪函数,那就另当别论了。“当程序完成执行时”实际上意味着进程
import sys
sys.exit(0)
它是否保证进程在执行后从内存中完全清除?简短版本:否
长版本:我不认为调用sys.exit(0)可以确保在不同于操作系统的级别上处理内存管理
当脚本完成时,python不再控制它(显然)
如果您的脚本在某个时候调用了其他外部脚本或一个您认为可能会篡改内存的奇怪函数,那就另当别论了。“当程序完成执行时”实际上意味着进程已经终止,到那时,所有内存都会返回到系统。如果您仍然可以在htop(或ps等)中看到该进程,则表示该程序尚未“完成执行”。可能是您正在使用
线程
/多处理
,并且其中一个进程/线程未正确终止?我认为这是python进程保持开放状态的一个非常常见的原因