2012-03-15 5 views
1

GWTはガベージコレクションを管理しており、ウィジェットまたは変数がアプリケーション内で参照されなくなったときにメモリーシンク(別名リーク)が発生するのを防ぐことができると推測しています。 。GWT循環割り当て/リンクのガベージコレクション

リファレンス/変数をnullに設定することは、ウィジェット/オブジェクトがアプリ内の別の場所で参照/リンクされる可能性があるため、不十分です。特にツリーの中で、ツリーアイテムに関連する情報をハッシュアップします。

誰かが上記の仮定に反対する場合は、あなたの心を話してください。

すべての場合、オブジェクトのクラスタがお互いを参照しているが、全体的には、アクティブに使用されているオブジェクト/変数をトレースできるリファレンスチェーンはありません。

単純なケースは、自分の二重リンクリストクラスからインスタンス化された二重リンクリストです。または、自分で書いたクラスからもインスタンス化された循環リスト。その二重リンクリストまたは循環リストが、アクティブなコンポーネント/オブジェクト/変数によって参照されなくなったらどうなるでしょうか?

GWT gcはこれらのリストを収集して破壊する方法を知っていますか?

私はメモリシンクの蓄積を避けるためにどのような注意事項やデザインパターンを守らなければなりませんか?

答えて

2

これはすべてのガベージコレクションフレームワークが対処する方法を知っているものですが、私はGWTがJavascriptのGCに依存していると考えています。

this section on Wikipediaを調べると、記述した二重リンクリスト構造が正しくガベージコレクションされる理由を理解できます。つまり、参照されていないリストにはルートからアクセスできません。

関連する問題