如何使用python控制内存



我的最终工作程序是这样的:

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打开此代码并在任务管理器中查找时,

管理器的 python.exe 进程让内存从 10,000K 开始,以 23,000K 结束。

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

如果 for 语句的循环次数很大,则可以使用 xrange 而不是 range,使用 itertools.izip 而不是 zip 来实现高效循环。

  1. 您应该使用 xrange Instand of Range
  2. 使用 gc.collect() 加快内存返回速度

最新更新