Python 3.3 urllib内存泄漏

我正在使用带有iOS 10.9.2和Python3.3的Mac mini。我编写了简单的Python应用程序,它获取API数据并显示一些计算。一切都运行得很好,但我在活动监视器(操作系统工具)中看到,在很少的连接之后,系统内存使用量会增加,但在我看来不应该是这样。我不会发布可以消耗所有内存的应用程序,所以我需要帮助。
下面是我的一小段代码,它造成了这个问题:

选择 | 换行 | 行号
  1. import urllib.request
  2. import time
  3.  
  4. class Main(object):
  5.     def Get(self, url):
  6.         urlData = urllib.request.urlopen(url)
  7.         for line in urlData:
  8.             line = str(line,'utf-8')
  9.             print( line.rstrip() )
  10.         urlData.close()
  11.         time.sleep(1)
  12.  
  13. M = Main()
  14. url = "https://btc-e.com/api/2/btc_usd/trades"
  15. b=1
  16.  
  17. while b>0:
  18.     M.Get(url)
  19.  

我尝试了另一种方法,但它也会增加内存使用量:

选择 | 换行 | 行号
  1. req = request.urlopen('https://btc-e.com/api/2/btc_usd/trades')
  2. urlData = json.loads(req.read().decode('utf-8')) 

这也会使内存使用率更高:

选择 | 换行 | 行号
  1. from urllib.request import urlopen
  2. html = urlopen("https://btc-e.com/api/2/btc_usd/trades")

提前谢谢您!

# 回答1


这个问题最好在Mac论坛上问,在那里人们比我们更了解操作系统。简短的答案是,这取决于您使用哪个程序来显示内存使用情况。它是显示实际使用情况还是共享内存使用情况。此外,Mac OS在某种程度上与Linux相关,当内存可用时,Linux会分配一个程序可能使用的所有内存,因此一些工具会报告大量的"已用"内存,即使这些内存只是在那里等待并可供其他程序使用。
# 回答2


谢谢你的答复。
我会用其他工具检查内存使用情况。
有没有什么工具可以用来检查内存是否被释放了?

标签: python

添加新评论