参照カウントは、オブジェクト毎のメタデータをプログラム実行に沿って(例えば、参照タイプのフィールドに新たな値を設定する時に)更新することで動作します。メタデータ更新に必要な処理はアプリケーションスレッドで行われるので、独立したアクティビティとして明確に分離することはできません。 実践的なGCアルゴリズムはGC roots — 有効(live)であることが分かっているオブジェクトのセット — から始まり、ポインタを追って有効なオブジェクトをすべて決定することで進行します。 このようなトレーシングコレクタ(tracing collector)では、グラフ理論アルゴリズムを実装することによって、ヒープメモリを有効なものと再利用可能(reclaimable)なものとに分割します。 現代的なGCの文脈においては、コンカレント(concurrent)とパラレル(parallel)が、いずれもコレクショ