这是脚本的精简版,导致内存使用量不断增加,我发现它在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/

10-12 18:12