这是脚本的精简版,导致内存使用量不断增加,我发现它在2分钟后超过了600MB:
import requests
import grequests
lines = (grequests.get(l.strip(), timeout=15) for l in open('links.txt') if len(l.strip()))
for r in grequests.imap(lines, size=20):
if r.ok:
print r.url
links.txt是一个包含大量URL的文件,问题是我收集了几组大URL。在我看来,响应对象可能没有被尊重?
我今天更新了gevent,request和grequest,以下是它们的版本:
In [2]: gevent.version_info
Out[2]: (1, 0, 0, 'beta', 3)
In [5]: requests.__version__
Out[5]: '0.13.5'
grequests没有我可以找到的版本号。
在此先感谢您提供任何答案。
最佳答案
这个答案只是一个别名,可以链接到可能需要link的人。
我使用imap函数和request.Session来减少内存使用量,同时在脚本中发出380k请求。
关于python - 带有grequests的"Memory Leak"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11815640/