ガーベジコレクション入門 その1
- 8. アロケーション / チャンクの結合
´ アロケーション
• フリーリストをたどり、要求されているオブジェクトサイズより⼤きいサイズのチャンクを返す
• 返されたチャンクを分割し、要求されるオブジェクトサイズのみ割当を⾏い、残りはフリーリストに戻す
´ チャンクの結合
• スイープ時に死滅オブジェクトが連続していた場合、それらを繋げてフリーリストにつなげる
- 12. ビットマップマーキング
´ ヒープ領域内のオブジェクトヘッダを書き換えるとコピーが発⽣する → ヒープ領
域外でマーク情報を管理
´ 外部のビットマップテーブルでマーキング情報を管理
´ オブジェクトが参照されている場合はフラグビットを⽴てる
10 0 001・・・ビットマップテーブル
ヒープ領域
obj_num = 何番⽬のオブジェクトか︖
Index = obj_num / WORD_SIZE
offset = obj_num / WORD_SIZE
実際は⼆次元配列のようになっており、indexとoffsetでアクセス