【发布时间】:2013-01-16 09:59:00
【问题描述】:
我在python中有一个非常有趣的案例。
主进程创建N个子进程。 子流程是继承自 multiprocessing.Process 的类。
现在,当子进程数为10个时,每个子进程消耗大约15M的驻留内存。 但是,当我将子进程数增加到100个时,每个子进程的驻留内存消耗都跃升到50M左右!!!
任何人都可以解释这种内存跳跃/建议如何避免它?
下面是子流程类的结构:
class MySubProcess(multiprocessing.Process):
def __init__(self, sub_process_number):
multiprocessing.Process.__init__(self, target=self.go)
self.m_sub_process_number = sub_process_number
def go(self):
self.m_config = global_config
while (True):
....
非常感谢!!!
【问题讨论】:
-
您介意透露一下 python 风格/平台/版本吗?
-
我使用的是python 2.7.3,linux 64bit
-
你是说15M还是50M是子进程消耗的内存?如果是这样,为什么是如何启动子流程的问题?好像是子进程中运行的程序的问题,你不说。
-
我无法理解的是为什么子进程数量的增加会导致所有子进程的内存消耗增加。虽然我所期望的是,内存增加是由于添加了新的子进程,而不是因为现在每个子进程都消耗更多的内存。
标签: python