Garbage Collection Advent Calendarの13日目の記事です(よくぞここまで…)。 フラグメンテーションの話。GC Handbookには以下の2種類のfragmentationがあることが記されています。 external fragmentation internal fragmentationそれぞれ見てみましょう。 external fragmentationexternal fragmentationはみなさんがよく知ってるやつだと思います。 シンプルなfreelistによるメモリアロケータ(K&R mallocとか)をずーっと使い続けていると、そのうちにfragmentationが発生して、以下の図のように小さな領域が飛び飛びに空いた状態になる可能性があります。 こうなると合計の空き領域は要求サイズを満たすものの、実際には外側に渡せるサイズはとても小さな