问题描述
我目前在我的代码中使用concurrent.futures.ThreadPoolExecutor
来同时执行我的一个代码段,但是运行了一段时间后,我发现我的主进程的内存消耗增加了,只是不断增加,而没有不会被释放。
我目前正在这样使用concurrent.futures.ThreadPoolExecutor
:
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as pool:
processing_data = pool.map(handle_item,items_dict.values())
# Using the data in processing_data...
我已经看到其他一些人在使用此模块时遇到了内存消耗问题,但是我发现的关于SO的其他问题都使用了一些不同的方法,这似乎与我的情况无关。
谢谢大家
编辑:
#!/usr/bin/env python3
import os
import time
import psutil
import random
import concurrent.futures
from memory_profiler import profile as mem_profile
p = psutil.Process(os.getpid())
def do_magic(values):
return None
@mem_profile
def foo():
a = {i: chr(i) for i in range(1024)}
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as pool:
proccessed_data = pool.map(do_magic,[1,2,3,4,5,6,7,8,9,10])
def fooer():
while True:
foo()
time.sleep(1)
fooer()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)