python – 带有问候的“内存泄漏”?

这是脚本的精简版本,导致内存使用量持续增加,我看到它在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是一个包含大量网址的文件,问题出现在我收集的几个大网址组中.在我看来,响应对象可能没有被尊重?

我今天更新了gevent,请求和问候,这是他们的版本:

In [2]: gevent.version_info
Out[2]: (1, 0, 0, 'beta', 3)

In [5]: requests.__version__
Out[5]: '0.13.5'

grequests没有我能找到的版本号.

提前感谢您的任何答案.

最佳答案
从我的角度来看,这是因为你试图同时打开所有链接.尝试这样的事情:

links = set(links)
while links:
    calls = (grequests.get(links.pop()) for x in range(200)) 
    for r in calls:
        ...rest of your code

此代码未经过测试,您将找到更好的解决方案,这应该证明您同时尝试打开太多链接并导致您的内存消耗.

转载注明原文:python – 带有问候的“内存泄漏”? - 代码日志