Skip to main content
 首页 » 编程设计

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

2025年05月04日9Free-Thinker

我在 jupyter notebook 上使用 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 notebook 也无法解决问题。

请您参考如下方法:

尝试存储所有派生进程的进程 ID,并在完成后终止所有进程。