繁体   English   中英

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

[英]How to free-up RAM after a multiprocessing task in python on Jupyter Notebook?

我正在jupyter笔记本上的python中使用多处理。 我可以使用工人池来并行化代码。 我面临着内存释放的问题。

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 ,我想在进程终止后立即释放RAM。 例如:此运行大约需要3.5 GB的RAM,运行完成后,系统监视器仍显示额外的3.5 GB。 我尝试删除所有形成的变量,即使关闭jupyter笔记本也无法解决问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM