Memory leaks 抓取网站中的内存泄漏
我设法创建了一些简单的脚本来捕获网站上的新闻表单,但问题在于内存泄漏。脚本似乎没有释放内存:( 我试图关闭,清空(没有任何东西,而清空没有帮助)-检查结束行Memory leaks 抓取网站中的内存泄漏,memory-leaks,vbscript,Memory Leaks,Vbscript,我设法创建了一些简单的脚本来捕获网站上的新闻表单,但问题在于内存泄漏。脚本似乎没有释放内存:( 我试图关闭,清空(没有任何东西,而清空没有帮助)-检查结束行 Do While x<50000 Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0") WScript.Sleep 60000 oXMLHTTP.Open "GET", "http://www.news.com/sport", False WScript.Sleep 900
Do While x<50000
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
WScript.Sleep 60000
oXMLHTTP.Open "GET", "http://www.news.com/sport", False
WScript.Sleep 900
oXMLHTTP.Send
If oXMLHTTP.Status = 200 Then
Set html = CreateObject("HTMLfile")
html.write oXMLHTTP.responseText
...some code...
html=Empty
oXMLHTTP=Empty
oXMLHTTP.responseText=Empty
oXMLHTTP.close
oStream.close
oStream=Empty
Loop
Do While x
您需要Set x=Nothing
来释放对象x
您不能访问以前发布的对象的成员(oXMLHTTP)
在下一个脚本存根中:
oXMLHTTP
变量声明为全局变量并定义一次,以便在整个脚本中使用
html
和oStream
变量是DoSomething
过程的局部变量,并从中释放出来
然而,有些陈述对我来说还不清楚
Option Explicit
Dim x, oXMLHTTP
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0")
Do While x<50000
WScript.Sleep 60000
oXMLHTTP.Open "GET", "http://www.news.com/sport", False
WScript.Sleep 900
oXMLHTTP.Send
DoSomething
oXMLHTTP.close
Loop
Sub DoSomething
Dim html, oStream
If oXMLHTTP.Status = 200 Then
Set html = CreateObject("HTMLfile")
html.write oXMLHTTP.responseText
'...some code...
End If
'...another code...
End Sub
选项显式
Dim x,oXMLHTTP
设置oXMLHTTP=CreateObject(“MSXML2.XMLHTTP.3.0”)
边做边做