关于使用urllib2模块的python中的内存消耗

时间:2014-03-27 10:08:47

标签: python http python-2.7 memory memory-management

PS:我在请求HTTP库here时遇到了类似的问题。

我在Windows 7操作系统上使用python v2.7。我正在使用 urllib2 模块。我有两个代码片段。一个文件名为myServer.py server类有两个名为getName(self,code)getValue(self)的方法。 另一个名为testServer.py的脚本只是调用server类中的方法来检索值并打印它们。 server类基本上从本地网络中的服务器检索值。所以,遗憾的是,我无法为您提供测试代码的权限。

问题:当我执行testServer.py文件时,我在任务管理器中观察到内存消耗不断增加。它为什么会增加以及如何避免它?如果我注释掉以下行

print serverObj.getName(1234)

testServer.py中,没有内存消耗增加。

我确信问题出在getName(self,code)类的server上。但不幸的是,我无法弄清问题是什么。

代码:请在下面找到代码段:

#This is the myServer.py file

import urllib2
import json
import random

class server():
    def __init__(self):
        url1 = 'https://10.0.0.1/'
        username = 'user'
        password = 'passw0rd'
        passwrdmgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
        passwrdmgr.add_password(None, url1, username, password)
        authhandler = urllib2.HTTPBasicAuthHandler(passwrdmgr)
        opener = urllib2.build_opener(authhandler)
        urllib2.install_opener(opener)
    def getName(self, code):
        code = str(code)
        url = 'https://10.0.0.1/' + code
        response = urllib2.urlopen(url)
        data = response.read()
        name = str(data).strip()
        return name
    def getValue(self):
        value = random.randrange(0,11)
        return value

以下是testServer.py代码段

from myServer import server
import time

serverObj = server()
while True:
    time.sleep(1)
    print serverObj.getName(1234)
    print serverObj.getValue()

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

这个问题与我的其他问题非常相似。所以我认为答案也很相似。答案可以在https://stackoverflow.com/a/23172330/2382792

找到