これは、GLOBISアドベントカレンダー16日目の記事です。前回は、@chrojuさんのDocker build を GitHub Actions に最適化するという記事でした。 はじめに 弊社ではRuby内部実装を知ることを目的に、@_ko1さんがWEB+DB PRESSで連載されていた「Rubyのウラガワ ── Rubyインタプリタに学ぶデータ構造とアルゴリズム」の社内勉強会を開いています。 社内勉強会を通してガベージコレクション(以降、GCと呼ぶ)に興味を持ち、マークスイープGCを実装しました。 本記事は、RubyのベースGCアルゴリズムであるマークスイープGCについて紹介しようと思います。 前提知識 オブジェクト アプリケーションによって確保されたデータ 生きているオブジェクト アプリケーションから参照されているオブジェクト 死んでいるオブジェクト アプリケーションから参照されな