Python 多处理pickled方法的可用内存
我用的是这个问题的第一个答案 能够在我自己的一个类的方法上使用多进程模块 例如,假设我有以下几点:Python 多处理pickled方法的可用内存,python,methods,multiprocessing,pickle,Python,Methods,Multiprocessing,Pickle,我用的是这个问题的第一个答案 能够在我自己的一个类的方法上使用多进程模块 例如,假设我有以下几点: from multiprocessing import Pool def myParallelFunc(my_list, a, b, inst): # do something return True def myFunc: # instantiate custom class my_instance = MyObject() pool = Pool
from multiprocessing import Pool
def myParallelFunc(my_list, a, b, inst):
# do something
return True
def myFunc:
# instantiate custom class
my_instance = MyObject()
pool = Pool()
pool.map(functools.partial(myParallelFunc, a=5, b=7, inst=my_instance), my_list)
# SOLUTION!!!
pool.close()
现在我有另一个程序调用myFunc,比如说100次。
每次调用myFunc时,都会有一些内存被占用,而且永远不会释放。
有没有办法显式释放它?每次调用myFunc时都会创建一个新池。当myFunc退出时,它不会自动删除,因为子进程和相关线程仍然存在
创建一个池,为这100个呼叫保留它。关闭它你怎么知道它永远不会被释放?Python内存管理应该为您解决问题。我用“top”监视它,它只在程序退出时才被释放