Components.utils.forceGC

このメソッドはスクリプトにガベージコレクションサイクルを強制します。 JavaScript ヒープがある大きさを超えると Mozilla JavaScript エンジンは自動的にガベージコレクションを実行するでしょう。もっとも、この機構は JS オブジェクトにぶら下がる ネイティブ (C++) XPCOM オブジェクトを把握してはいません。多くの場合、 JavaScript アプリケーションは巨大な XPCOM (のツリー) を参照している JavaScript オブジェクトについての内部情報を持っており、いつ参照しなくなるかを知っています。この場合 JavaScript からガベージコレクションサイクルを強制できることが重要になることがあります。

ガベージコレクションを強制することは、他にも弱い JavaScript 参照のハッシュからの死んだ参照 (dead reference)をクリーニングする前です。

このメソッドを使う人はガベージコレクションが非常に負担の大きい (expensive)操作で、絶対必要だと知っている 時のみ使用すべきだとことに注意してください。

: nsIDOMWindowUtils.garbageCollect() は同様の機能を提供しますが、 JavaScript エンジンのガベージコレクターに加えてサイクルコレクターも起動します。これにより、ガベージコレクターに依存するテストケースなど、 JavaScript オブジェクトのサイクルを構築する XPCOM コンポーネントも回収されることが重要になるかもしれないと分かるでしょう。

UniversalXPConnect 特権が必要です。

もし、実行されている JavaScript コードがない状態で、将来的にガベージコレクションを起こすことをスケジューリングしたい場合は、代わりに Components.utils.schedulePreciseGC() を使用することができます。

ドキュメントのタグと貢献者

 このページの貢献者: mfuji09, Kozawa, Taken, Mgjbot
 最終更新者: mfuji09,