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”)
    边做边做