タグ

ブックマーク / qiita.com/sakupa80 (1)

  • RubyのGCを動かして、ざっくり理解する - Qiita

    普段プログラムを書いていると、あまり気にすることのないGCの動きについて知りたくなったので、調べた内容をまとめてみました。 GC自体は様々な言語に導入されており、アルゴリズムもそれぞれですが今回はRuby(C Ruby)のGCについて書いていきます。 RubyのGCアルゴリズムについて Rubyでは元来「mark&sweep」というアルゴリズムでGCが動いておりました。 このmark&sweepでは 1. マークフェーズ 2. スイープフェーズ の2つのフェーズがあります。 まずマークフェーズでは、rootオブジェクトから参照のあるオブジェクトのみにマークしていきます。 スイープフェーズではマークのついていない、つまり使われていないオブジェクトを解放していきます。 この2つのフェーズを行うだけのシンプルな手法です。 ですが、この手法ではスイープの際に全てのオブジェクトに対してマークがあるか

    RubyのGCを動かして、ざっくり理解する - Qiita
    tech-kazuhisa
    tech-kazuhisa 2024/05/10
    “GC.start(full_mark: false)”
  • 1