Python 使用固定内存资源执行函数
我有一个正在预处理的模型列表:Python 使用固定内存资源执行函数,python,python-2.7,memory,Python,Python 2.7,Memory,我有一个正在预处理的模型列表: def preprocess(model): from somewhere import apply_calc try: return apply_calc(model) except: return False for model in all_models preprocessed_model = preprocess(model) 我的问题是,有些模型太大了,以至于我的“预处理”函数使用了
def preprocess(model):
from somewhere import apply_calc
try:
return apply_calc(model)
except:
return False
for model in all_models
preprocessed_model = preprocess(model)
我的问题是,有些模型太大了,以至于我的“预处理”函数使用了我所有的MEM(32G)和SWP(32G),即使我有“try-except”部分,我的整个脚本也会被带有OOM的linux杀死
我解决这个问题的想法是将“preprocess”函数作为线程运行,并且只使用固定数量的内存资源。大概是这样的:
运行线程(函数=预处理,参数=模型,内存限制=40G)
现在,要么“预处理”能够使用40GB内存进行计算,它将返回预处理的模型,要么它将失败,只返回一个“False”
您能告诉我这看起来是否是一种正常的方法,以及如何在内存资源有限的情况下运行线程吗?我正在使用python 2.7,看起来像是X,Y问题。@James:你是说应用程序不应该吃掉整个内存和SWP?问题是,这是一个第三方软件,我没有那么多时间来重新实现它。