2014-03-27 66 views
1

PS:我有一個類似的問題,請求HTTP庫here關於使用urllib2模塊的python的內存消耗

我在Windows 7操作系統上使用python v2.7。我正在使用urllib2模塊。我有兩個代碼片段。一個文件命名爲myServer.pyserver類有兩種方法,分別命名爲getName(self,code)getValue(self)。 另一個名爲testServer.py的腳本僅調用server類中的方法來檢索值並打印它們。 server類基本上從本地網絡中的服務器檢索值。所以,不幸的是我無法爲您提供測試代碼的權限。

問題:當我執行我的testServer.py文件,我在任務管理器觀察到的內存消耗不斷增加。它爲什麼會增加以及如何避免它?如果我在testServer.py註釋掉以下行

print serverObj.getName(1234) 

那麼有沒有增加內存消耗。

我確定問題出在server類的getName(self,code)。但不幸的是,我無法弄清楚問題所在。

代碼:請找到下面的代碼片段:

#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() 

謝謝您的時間!

回答