是否可以监控每个流程';内存使用情况如何?(Python、多处理、池)

是否可以监控每个流程';内存使用情况如何?(Python、多处理、池),python,multiprocessing,pool,Python,Multiprocessing,Pool,我正在使用Multiprocessing.Pool进行并行处理。 当输入数据很大(超过1GB)时,我的代码会停止。 池大小正好是核心数(12),每个子进程只处理一部分数据。 该代码具有以下结构 pool = multiprocessing.Pool(processes=pool_size, maxtasksperchild=2) args = [] for j, module in enumerate(list_modules): args.append((module, ..)) li

我正在使用Multiprocessing.Pool进行并行处理。 当输入数据很大(超过1GB)时,我的代码会停止。 池大小正好是核心数(12),每个子进程只处理一部分数据。 该代码具有以下结构

pool = multiprocessing.Pool(processes=pool_size, maxtasksperchild=2)
args = []
for j, module in enumerate(list_modules):
    args.append((module, ..))
list_answer = pool.map(delegate_buildup, args)
pool.close()
pool.join()
我想知道每个进程都保存着数据的整个副本? 我的意图是将一部分数据分发给每个子流程。 如果它像我预期的那样工作,我认为内存使用可能并不重要,因为我的计算机有128 GB的RAM


是否可以监视每个子进程的内存使用情况?

取决于操作系统。在Linux中,内存与子进程共享,并且只有在写入页面时才进行复制。我发现最好的方法是,只有在开源项目中使用它时,才可以免费使用,否则一个许可证就要100美元。(你确实有15天的测试期)我在这个问题上也有类似的问题(没有共享内存,但可能有大量数据)。有几种方法可以解决这个问题,比如只在进程池中加载数据,而不是之前加载。或者使用一些工具来使用共享内存,比如