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 - [PARAM]