サバイバーは2つのスペースアルゴリズムをコピー
アウトライン
で、「Java仮想マシンの深い理解、」この本は、この導入を複製するための方法がある:それは今、彼らは新しい世代を収集するために使用し、市販の仮想マシンのレプリケーションのアルゴリズムです。コピーアルゴリズム大きなスペースエデンサバイバーにメモリ2つの小さな空間、及び前記各利用回収サバイバーエデンスペース、およびサバイバーエデンはサバイバーの別の部分を促進するために、ライブオブジェクトをコピー最後に、ちょうどエデンや宇宙利用を一掃。仮想マシンは、学生に精通していない、いくつかの質問を持っている必要があります。なぜそれが機能は同じである、明らかにエデンのと、2つに分割されているサバイバースペースを主張。
レプリケーションの動作アルゴリズム
1から呼び出さサバイバーエリア、ブロックオブジェクトとの間で呼ばれる1、エデンの存在。移動する物体で:GCは、エデンの生存率は、全対象ブロックを移動するために、そして生存オブジェクトからそれが一定値に達したときに、年齢の所在の値を判断した場合(MaxTenuringThresholdを提供することが-XXによって年齢閾値)古い世代は、GC、エデンの後に空になっているから、フィールドににコピーされた値に到達していません。
後にブロックから、つまり新しいオリジナルのスイッチの役割、からとするには、新しいブロックがにブロックからオリジナルであり、年齢をブロックするために新しいがインクリメントされます。
疑い
サバイバーエリアのポイント、GCは、古い世代のオブジェクトに生き残った最初のサバイバー領域は年齢値に達したときに、明確なオブジェクトが死亡している、エデンエリアサバイバー領域にオブジェクトを存続した後、サバイバーのエリアのみ対象年齢は2サバイバー1.仮想マシンを2つ、それに分割されなければならない理由の違いは、どのようなものですので、ということ?追加され、分割されていますか
答え
百度と議論し、小さなするパートナーを確認した、という結論に来て、そこに何かが間違っているのですか良いアイデアを持って、私を修正してください。
つまり、もし唯一のサブサバイバー、サバイバーエリア2つのサバイバーのトラブル、例2、単にオブジェクトが移動生き残りの回復を獲得するために明確な死者のオブジェクトと同様に、瞬間サバイバーエリアでのオブジェクトの生存を、クリアするとき直接オブジェクトの残りの部分をきれいにして行きます。
さらに、より明確な分割ロジックに、2サバイバー分けは比較的単純な技術と理解しています。