Ich habe ein Gadget für Windows Sidebar geschrieben. Dies bedeutet im Wesentlichen, dass es sich um eine Miniaturseite handelt, die monatelang läuft.Wie erkennen, beheben, schließen Speicherverlust im Windows Sidebar Gadget?
Nach ein paar Wochen läuft die Speicherauslastung (Arbeitssatz) des Prozesses sidebar.exe, der Gadgets von Drittanbietern enthält, in die Hunderte von Megabyte.
Ohne eine Möglichkeit, die Quelle von Speicherlecks zu identifizieren, nehme ich einfach an, dass es das vermeintliche XMLHttpRequest-Schließungsproblem ist. Obwohl ich es in meinem Fall nicht asynchron mache. Also ich denke, es ist nur JAX eher als A JAX.
Die Javascript-Funktion, die Web-Hit beteiligt:
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;
}
dies sieht es wie immer die Quelle für ein Speicherleck sein könnte?
Ich befürchte, dass ohne eine tatsächliche Schließung bin ich wieder auf Platz eins.
Sie können Ihre gesamte Try Catch-Anweisung nur durch "xmlHttp = new XMLHttpRequest();" ersetzen. Nur die IE-Engine wird zum Anzeigen eines Gadgets verwendet. – ZippyV