首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jupyter Notebook上的python中执行多处理任务后释放RAM?

如何在Jupyter Notebook上的python中执行多处理任务后释放RAM?
EN

Stack Overflow用户
提问于 2017-12-10 03:03:54
回答 1查看 315关注 0票数 2

我在jupyter notebook上使用python中的多进程。我能够使用工作者池来并行化代码。我正面临着内存释放的问题。

代码语言:javascript
复制
import multiprocessing

def forSources(n):
   temp_pairings = []
   temp_pairings += dfs_edges2(digraph, flights[n[0]], n[1])
   print(multiprocessing.current_process().name, len(temp_pairings))
   return (temp_pairings)

for depth in range(0, 2):
   pool = multiprocessing.Pool()
   result = pool.map(forSources, [[i, depth] for i in range(0, 3000)])
   for pairings in result:
      final_result += pairings
   if len(final_result) > 5000:
      break
   pool.terminate()
   pool.join()

解压final_result后,我想在进程终止时立即释放内存。例如:此运行占用大约3.5 GB的RAM,并且在运行完成后,系统监视器仍显示额外的3.5 GB。我已经尝试删除所有形成的变量,即使关闭jupyter笔记本也解决不了问题。

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 01:03:05

尝试存储所有衍生进程的进程id,并在完成后杀死所有进程。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47732089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档