2016-03-29 16 views
2

私は新世代のストアが新しく作成されたオブジェクトを読んでいますが、tenured世代のストアオブジェクトは存続します。しかし、コンパイラは特定のオブジェクトが生存するかどうかをどのように知っているのでしょうか?終身世代にはいつ特定の目的を置くのだろうか?私を案内してください。ヒープの新世代とtenured世代の違い

答えて

0

若い世代は3つのスペースに分かれています。

  • 一つエデンスペース
  • 二サバイバースペース

サバイバー空間であるそのうちの2つ、合計で3つのスペースがあります。

  1. 新しく作成されたオブジェクトの大半はEden領域に配置されています。
  2. エデン空間内の1つのGCの後、生き残ったオブジェクトはサバイバー空間の1つに移動されます。
  3. エデン空間のGCの後、オブジェクトは残存する他のオブジェクトが既に存在するサバイバー空間に積み重ねられます。
  4. サバイバースペースがいっぱいになると、生き残ったオブジェクトは他のサバイバースペースに移動します。満員の生存者空間は、データがまったくない状態に変更されます。
  5. これらのステップを何度も繰り返したオブジェクトは、古い世代に移動されます。

この情報はthis articleから取得されています。私はそれを深く理解するために読むことをお勧めします。