1. ホーム
  2. javascript

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

2023-05-06 08:48:13

質問

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

そこで、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();
}

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

どのように解決するのですか?

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

var namespace = {};

namespace.someClassObj = {};

delete namespace.someClassObj;

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

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