Windows サイドバー用のガジェットを作成しました。これは本質的に、何ヶ月も続けて実行されるミニチュアの Web ページであることを意味します。
数週間後、サード パーティのガジェットを格納する sidebar.exe プロセスのメモリ使用量 (ワーキング セット) が数百メガバイトに達します。
メモリ リークの原因を特定する方法がないため、噂されている XMLHttpRequest クロージャの問題であると単純に推測します。私の場合、私は非同期で行っていませんが。だから私はそれがA JAXではなく単なるJAXだと思います。
Web ヒットに関連する 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;
}
これは、メモリ リークの原因になる可能性があるように見えますか?
実際の閉鎖がなければ、振り出しに戻ってしまうのではないかと心配しています。