web-dev-qa-db-ja.com

組み込みメモリリークのあるIE11がメモリ不足になったときに検出する(1.5GBのリサイクル可能なプール)

IE11には、文書化されたiframeのメモリリークがあります。 SPAでは、iframeを使用している場合、メモリは約1.5GBに増加し、その後クラッシュするまで遅くなります。

私の仕事は、ブラウザーがいつクラッシュするかを検出し、ページをすぐに再起動することです。アプリケーションは、ASP.NET MVC内に埋め込まれたVue.JSです。

IE11のブラウザーでは、どのような種類のメモリ/パフォーマンス検出を利用できますか?

  • ある種の使用済みメモリ測定ライブラリ?
  • 何らかのパフォーマンス測定ライブラリ?
  • 作成されたJavaScriptオブジェクトをカウントしていますか?
  • 作成されたiframeをカウントしていますか?

他のアイデア?ありがとう。 :)

出典: https://developer.Microsoft.com/en-us/Microsoft-Edge/platform/issues/10186458/https://developer.Microsoft.com/en-us/Microsoft-Edge/platform/issues/8449104 /http://support.sas.com/kb/60/514.html

6
Edza

これは、IE11のメモリ不足を検出するために使用したものです。

主なアイデア:1秒ごとのタイマー。 1秒のタイマーに1分かかると、フリーズします。

var startTime, endTime;

function start() {
    startTime = new Date();
};

function end() {
    endTime = new Date();
    var timeDiff = endTime - startTime; //in ms
    // strip the ms
    timeDiff /= 1000;

    // get seconds 
    var seconds = Math.round(timeDiff);
    console.log(seconds + " seconds");

    if (seconds > 60)
        console.log("IE11 just froze. We need to refresh.");
}

start();

setInterval(function () {
    end();

    start();
}, 1000);
0
Edza