Ruby 4.1 リファレンスマニュアル

singleton method GC.start

start(full_mark: true, immediate_mark: true, immediate_sweep: true, global: true) -> nil[permalink][rdoc][edit]
(?immediate_sweep: boolish, ?immediate_mark: boolish, ?full_mark: boolish) → nil

ガーベージコレクトを開始します。

GC#garbage_collect や ObjectSpace?.garbage_collect と同じ働きをします。 GC.disable により GC が禁止されている場合でもガベージコレクトを開始します。

nil を返します。

[PARAM] full_mark:
マイナー GC を動作させる場合は false を、そうでない場合は true を指定します。
[PARAM] immediate_mark:
mark を遅らせる(Lazy Mark を行う)場合は false を、そうでない場合は true を指定します。
[PARAM] immediate_sweep:
sweep を遅らせる(Lazy Sweep を行う)場合は false を、そうでない場合は true を指定します。
[PARAM] global:
他の Ractor のオブジェクト空間が存在するときに、全 Ractor を対象とするグローバル GC を行う場合は true(デフォルト)を、呼び出した Ractor だけのメジャー GC を行う場合は false を指定します。Ractor が 1 つしか無いときは効果がありません。

終了した Ractor のオブジェクト空間はすぐには消えず、あとで別の Ractor(通常はメイン Ractor)のオブジェクト空間に統合されます。他の Ractor のオブジェクト空間が存在するとき(終了した Ractor の、まだ統合されていないオブジェクト空間も含みます)や、前回のグローバル GC のあとにこの統合が行われたときは、global が true なら全 Ractor を対象とするグローバル GC になり、GC.stat の :global_gc_count と :global_gc_invocation_count が増えて :major_gc_count は増えません。

注意: これらのキーワード引数は Ruby の実装やバージョンによって異なります。将来のバージョンとの互換性も保証されません。また、Ruby の実装がサポートしていない場合はキーワード引数を指定しても無視される可能性があります。

例
p GC.count  # => 3
p GC.start  # => nil
p GC.count  # => 4