我有一个需要大量内存的应用程序,它遍历一对数组,处理元素的每个组合。目前这个脚本非常需要内存。它最终使用了大约 3GB 的 RAM。
我的问题是这样的:
在一个大进程中处理元素的每个组合是否更节省内存?还是为每个组合启动一个新的子流程更好。
换句话说,执行选项 1 是否更好:
for i in param_set1:
for j in paramset2:
Do_A_Big_Job(i, j)
或选项 2:
import subprocess
for i in param_set1:
for j in paramset2:
subprocess.call([Do_A_Big_Job_Script, i, j])
“更好”是指“使用更少的 RAM”。
谢谢!
编辑 我对内存使用情况非常好奇。当进程结束时,UNIX 系统会释放内存吗?对于编写得相当好的脚本,这是否比 python 的垃圾收集更有效?我没有很多可用的内核,所以我希望多个进程或多或少地并行运行。