如何使python多处理池内存高效?

如何使python多处理池内存高效?,python,linux,python-3.x,memory,multiprocessing,Python,Linux,Python 3.x,Memory,Multiprocessing,我正在尝试用多重处理来处理大量文本 import pandas as pd from multiprocessing import Pool from itertools import repeat # ...import data... type(train) type(train[0]) 输出: pandas.core.series.Series str 我需要导入一个非常大的文件(1.2GB)以用于我的功能。它存储在名为Gmodel的对象中 我的函数接受4个参数,其中一个是类似于G

我正在尝试用多重处理来处理大量文本

import pandas as pd
from multiprocessing import Pool
from itertools import repeat

# ...import data...

type(train)
type(train[0])
输出:

pandas.core.series.Series
str
我需要导入一个非常大的文件(1.2GB)以用于我的功能。它存储在名为
Gmodel
的对象中

我的函数接受4个参数,其中一个是类似于
Gmodel
的对象:

my_func(text,model=Gmodel,param2,param3)

然后我使用
多处理.Pool
函数:

from functools import partial

# make the multi-parameter function suitable for map 
# which takes in single-parameter functions
partial_my_func= partial(my_func, model=Gmodel, param2=100, param3=True)


if __name__ == '__main__':
    p = Pool(processes = 10, maxtasksperchild = 200)
    train_out = p.map(partial_my_func, train)
当我运行最后3行并在终端中执行
htop
时,我看到几个进程的
VIRT
RES
超过20G。我使用的是共享服务器,不允许我使用这么多内存。我有没有办法减少内存使用

系统信息:

3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 12:22:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

您能详细介绍一下文本处理吗?您可以尝试使用multiprocess.Manager和multiprocess.Process