Ruby 3.4のGCの話
Shopifyが使ってるunicornのメモリ食わない版サーバー。知らなかった。
世代別GC
古いオブジェクトを含めたすべてのオブジェクトを対象とする
オブジェクトの数が一定の閾値を超えた場合のみ実行される
新しいオブジェクトのみをGCの対象とする
運用時には新しいオブジェクトの寿命が短いことがほとんどであるということを前提に高頻度で実行される
インクリメンタルGC
GCとプログラムの実行を短い頻度で交互に行う
細かい頻度でGCが行われるのでプログラムの実行を長時間止めない
世代別インクリメンタルGC
上記の合わせ技。Rubyで採用されてる(てた?)
そもそもなんでGCを避けたい?
GC中はGC以外の全ての処理が止まる(Stop the world!)