突っ走り書き

見せるほどのものでは..

Chapter 6. Understanding Garbage Collection (Optimizing Java)

GC実装のルール

  • アルゴリズムはすべてのゴミを収集しなければならない
  • 生きているオブジェクトは集めてはいけない

Mark and Sweep

マーク・アンド・スイープ(mark-and-sweep)は、ガベージコレクションの実装方法およびガベージコレクタの動作方法の一つ。

ja.wikipedia.org

  1. allocated list をループし、mark bit をクリアする
  2. GCルートからはじめて、live object を見つける
  3. 到達したオブジェクトに mark bit をセットする
  4. allocated list をループし、mark bit がセットされていないオブジェクトに対して
    1. heap 内のメモリを回収して、free list に戻す
    2. allocated list からオブジェクトを削除する

ヒープの状態を確認する方法

jmap -histo