如何用python控制内存?

时间:2015-04-21 02:35:27

标签: python python-3.x memory-management

我的最终工作计划就像:

for i in range(start_number, end_number):
    page = urlopen(http://targetpage/i.html)
    soup = BeautifulSoup(page.read())
    link = soup.select('div#link')
    tag = soup.select('div#tag')

    for l, t in zip(link, tag):
        for link_reference in l.find_all('a'):
            tag_reference in t.get_text()
            final_zip = zip(link_reference, tag_reference)
    print(final_zip)
print("end")

结构看起来很简单,但问题是,

它提供了太多的内存。 我不知道如何检查“只有python代码使用内存”,

但是当我从cmd打开这段代码,并查看taskmanager时,

manager的python.exe进程以10,000k开始以23,000k结束内存开始。

为什么它会使用如此多的内存,以及如何减少内存?

2 个答案:

答案 0 :(得分:0)

如果 for 语句的周期数很大,您可以使用 xrange 而不是范围, itertools.izip 而不是zip有效循环。

答案 1 :(得分:0)

  1. 你应该使用xrange而不是range
  2. 使用gc.collect()加速内存返回