Высокое использование памяти Python с BeautifulSoup
Я пытался обработать несколько веб-страниц с BeautifulSoup4 в Python 2.7.3, но после каждого анализа использование памяти увеличивается и увеличивается.
Этот упрощенный код производит то же самое поведение:
from bs4 import BeautifulSoup
def parse():
f = open("index.html", "r")
page = BeautifulSoup(f.read(), "lxml")
f.close()
while True:
parse()
raw_input()
После пятикратного вызова parse () процесс python уже использует 30 МБ памяти (размер используемого HTML-файла был около 100 КБ), и он увеличивается на 4 МБ за каждый вызов. Есть ли способ освободить эту память или какой-то обходной путь?
Update: Такое поведение вызывает у меня головную боль. Этот код легко использует много памяти, хотя переменная BeautifulSoup должна быть долго удалена:
from bs4 import BeautifulSoup
import threading, httplib, gc
class pageThread(threading.Thread):
def run(self):
con = httplib.HTTPConnection("stackoverflow.com")
con.request("GET", "/")
res = con.getresponse()
if res.status == 200:
page = BeautifulSoup(res.read(), "lxml")
con.close()
def load():
t = list()
for i in range(5):
t.append(pageThread())
t[i].start()
for thread in t:
thread.join()
while not raw_input("load? "):
gc.collect()
load()
Может быть, это какая-то ошибка?