【发布时间】:2015-10-21 15:04:05
【问题描述】:
如何在这个 Python 循环中清除内存?
import concurrent.futures as futures
with futures.ThreadPoolExecutor(max_workers=100) as executor:
fs = [executor.submit(get_data, url) for url in link]
for i, f in enumerate(futures.as_completed(fs)):
x= (f.result())
results.append(x)
del x
del f
get_data - 使用请求的简单函数
【问题讨论】:
-
为什么要删除它们?您面临什么问题?
-
我正在尝试发送 >100k 的请求。每五千个请求使用 1 GB 内存。
-
我所做的是将原始的大列表拆分成更小的批次,然后为每个批次运行上述循环。我认为五千个请求,特别是如果几个同时 ping 同一个站点/服务器,可能会给你带来麻烦(即被阻止)。我在尝试缩短网址时遇到了这个问题。
-
那么,我猜你不喜欢我们的任何答案?
标签: python for-loop memory-management parallel-processing