サーバーと常に通信し、画面の一部を更新するZKを使用した単一ページのWebアプリを開発しています。更新は1秒程度の頻度で行うことができます。これらの更新中に、大量のJSオブジェクトへの参照が失われ、それらのオブジェクトは最終的にガベージコレクターによってクリーンアップされる必要があります。
私たちが理解している限り、Chromeは非アクティブなタブでのみガベージコレクターを実行します。これは私たちにとって問題です。アプリのタブは通常アクティブであり、ほとんど更新されないため、 JSオブジェクトが収集されることはありません。十分な時間アクティブのままにすると、タブは最終的にクラッシュします(Awwスナップメッセージ)。
ガベージコレクションを手動で開始する必要があります。これまで、Chromeを--js-flags="--expose-gc"
実行して実行しようとしましgc()
たが、例外がスローされます。
ReferenceError: gc is not defined
これはFirefoxでは発生しません-メモリ使用量は多かれ少なかれ一定です。
ページを強制的に更新することはできません。
ありとあらゆる提案に感謝します。
編集:Chromeバージョンwindow.gc()
とgc()
23.0.1271.97 m
25.0.1364.2 dev-m