如何强制删除Python类的实例?
我正在用一个脚本来测试一个网站是否运行顺利,基本上我每20分钟左右就打开一次这个网站,检查一下响应时间等等。像这样:
while True:
MechBrowser = mechanize.Browser()
Response = MechBrowser.open("http://example.com")
time.sleep(1000)
我知道Python会自己处理垃圾回收,我们其实不需要太担心这个,但当我查看网络监控时,总是发现有几个连接没有关闭,每个连接都运行了一个小时或更久。而且并不是所有打开的连接都会挂在那里,只有其中的一些。我有点困惑,或者说有没有什么方法可以手动销毁这些连接呢?
3 个回答
0
你还可以使用多进程来确保在检查完之后,所有使用的资源都能被关闭:
from multiprocessing import Process
import time
import urllib2
def check_url(url):
try:
f = urllib2.urlopen(url)
f.close()
print "%s working fine" % url
except Exception as exc:
print "Error ", exc
if __name__ == '__main__':
while True:
p = Process(target=check_url, args=("http://www.google.com", ))
p.start()
p.join()
time.sleep(5)
6
手动使用del
来删除对象时,要注意这并不会真正删除这个对象,而只是减少了这个对象的引用计数
。当一个对象的引用计数
变为零
时,垃圾回收器就会把它从内存中移除。
10
试着关闭你的响应对象。