1. ホーム
  2. javascript

[解決済み] JavaScriptのオブジェクトを破棄するには?

2022-02-10 18:59:29

質問

最近、私のアプリケーションの1つがメモリを過剰に消費し、10MB/秒ずつ増加していることに気づきました。

そこで、JavaScriptのオブジェクトと変数を破棄して、メモリ消費を抑え、FFを破壊されないようにする方法を知りたいのです。

私は、ページを再読み込みすることなく、8秒ごとに2つのスクリプトを呼び出しています。

function refresh() {
    $('#table_info').remove();
    $('#table').hide();
    if (refreshTimer) {
        clearTimeout(refreshTimer);
        refreshTimer = null ;
    }
    document.getElementById('refresh_topology').disabled=true; 
    $('<div id="preload_xml"></div>').html('<img src="pic/dataload.gif" alt="loading data" /><h3>Loading Data...</h3>').prependTo($("#td_123"));
    $("#topo").hide();
    $('#root').remove();
    show_topology();
}

どの変数が原因かを確認するには メモリのオーバーヘッド また、そのプロセスの実行を停止させる方法は何ですか?

解決方法は?

このように、すべてのコードを1つの名前空間の下に置くことができます。

var namespace = {};

namespace.someClassObj = {};

delete namespace.someClassObj;

を使用することで delete キーワードはプロパティへの参照を削除しますが、低レベルでは JavaScript のガベージコレクタ (GC) は、どのオブジェクトを再生するかについてより多くの情報を取得します。

また、Chrome Developer Toolsを使用して、アプリのメモリプロファイルを取得し、アプリ内のどのオブジェクトを縮小する必要があるのかを確認することもできます。