我已經爲Windows邊欄寫了一個小工具。這基本上意味着它是一個微型網頁,運行數月。如何識別,修復,關閉Windows邊欄小工具中的內存泄漏?
幾個星期後,安裝第三方小工具的sidebar.exe進程的內存使用量(工作集)運行到數百兆字節。
沒有辦法確定內存泄漏的來源,我只是假設它是傳聞中的XMLHttpRequest關閉問題。雖然在我的情況下,我不是在異步做它。所以我想這只是JAX而不是A JAX。
涉及網絡命中JavaScript函數:
function FetchXML(method, url)
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{ // Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
throw "XMLHttp not supported"
}
}
}
xmlHttp.open(method, url, false);
xmlHttp.send(null);
if (xmlHttp.status != 200)
{
throw "Server returned status code "+xmlHttp.status.toString();
}
if (xmlHttp.responseXML.parseError.errorCode != 0)
{
throw "Error in returned XML: "+xmlHttp.responseXML.parseError.reason;
}
var responseXML = xmlHttp.responseXML;
xmlHttp = null;
return responseXML;
}
這是否看起來它可能永遠不會出現內存泄漏的來源是什麼?
我擔心如果沒有真正的關閉,我會回到原點。
您可以用「xmlHttp = new XMLHttpRequest();」替換您的整個Try Catch語句。只有IE引擎用於顯示小工具。 – ZippyV 2009-08-02 13:56:59