2017-12-24 20 views
-2

gollyハッシュ・ライフでGCが実際に理解できません。シンプルバケットハッシュを使用しますが、ハッシュテーブルから収集したノードとガベージをどのように格納するかを決定します。スクリプトのコメントいくつかの私に混乱。

いずれもその動作ロジックについて説明できます。 Golly Hash-life ProgramGolly HashTable&GCのしくみ

+0

投票の理由がありますか? – Aran

答えて

1

ゴリーは単純なマークとスイープのガベージコレクション戦略を使用します。ライブルートは、ノードを見つけて返す再帰ルーチンによって管理される明示的な配列(「スタック」と呼ばれる)に保持されます。メモリが使い尽くされると、生きたルートが深いところで最初に訪問されて生きているノードがマークされ、メモリブロックがアドレス順にスキャンされて空きリストが作成されます。

この単純なポリシーは、テストで参照カウントとより多くの「インテリジェントな」処分戦略を含む多くの代替戦略で勝っています。

+0

になるので、すべてのライブルートがスタックに保持されます。必要なスペースがあれば、結果は新しいノードで解放されます。 – Aran