Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > GCモジュール

module GC

クラスの継承リスト: GC

要約

GC は Ruby インタプリタの「ゴミ集め(Garbage Collection)」を制御 するモジュールです。

@see ObjectSpace

目次

特異メソッド
count disable enable latest_gc_info start stat stress stress=
インスタンスメソッド
garbage_collect

特異メソッド

count -> Integer[permalink][rdoc]

プロセス開始からガーベージコレクトを実行した回数を Integer で返し ます。

disable -> bool[permalink][rdoc]

ガーベージコレクトを禁止します。

前回の禁止状態を返します(禁止されていたなら true, GC が有効であったなら、 false)。

[SEE_ALSO] GC.enable

enable -> bool[permalink][rdoc]

ガーベージコレクトを許可します。

前回の禁止状態を返します(禁止されていたなら true, GC が有効であったなら、 false)。

[SEE_ALSO] GC.disable

latest_gc_info(result_hash = {}) -> Hash[permalink][rdoc]
latest_gc_info(key) -> object

最新のGCの情報を返します。

[PARAM] result_hash:
戻り値のためのハッシュを指定します。省略した場合は新 しくハッシュを作成します。result_hash の内容は上書き されます。
[PARAM] key:
得られる情報から特定の情報を取得したい場合にキーを Symbol で指定します。
start(full_mark: true, immediate_sweep: true) -> nil[permalink][rdoc]

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

GC#garbage_collectObjectSpace.#garbage_collect と同じ働きをします。 GC.disable により GC が禁止されている場合は何もしません。

nil を返します。

[PARAM] full_mark:
マイナー GC を動作させる場合は false を、そうでない場 合は true を指定します。
[PARAM] immediate_sweep:
sweep を遅らせる(Lazy Sweep を行う)場合は false を、そうでない場合は true を指定します。

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

stat(result_hash = {}) -> {Symbol => Integer}[permalink][rdoc]
stat(key) -> Numeric

GC 内部の統計情報を Hash で返します。

[PARAM] result_hash:
戻り値のためのハッシュを指定します。省略した場合は新 しくハッシュを作成します。result_hash の内容は上書き されます。
[PARAM] key:
得られる統計情報から特定の情報を取得したい場合にキーを Symbol で指定します。
[RETURN]
GC 内部の統計情報をHash で返します。 引数 key を指定した場合は数値を返します。
GC.stat
# =>
 {
   :count=>0,
   :heap_allocated_pages=>24,
   :heap_sorted_length=>24,
   :heap_allocatable_pages=>0,
   :heap_available_slots=>9783,
   :heap_live_slots=>7713,
   :heap_free_slots=>2070,
   :heap_final_slots=>0,
   :heap_marked_slots=>0,
   :heap_swept_slots=>0,
   :heap_eden_pages=>24,
   :heap_tomb_pages=>0,
   :total_allocated_pages=>24,
   :total_freed_pages=>0,
   :total_allocated_objects=>7796,
   :total_freed_objects=>83,
   :malloc_increase_bytes=>2389312,
   :malloc_increase_bytes_limit=>16777216,
   :minor_gc_count=>0,
   :major_gc_count=>0,
   :remembered_wb_unprotected_objects=>0,
   :remembered_wb_unprotected_objects_limit=>0,
   :old_objects=>0,
   :old_objects_limit=>0,
   :oldmalloc_increase_bytes=>2389760,
   :oldmalloc_increase_bytes_limit=>16777216
 }

戻り値のハッシュは処理系に依存します。これは将来変更になるかもしれません。

本メソッドは C Ruby 以外では動作しません。

stress -> bool[permalink][rdoc]
stress=(value)

GC.stress が真に設定されている間は、GC を行えるすべての機会に GC を行います。

[PARAM] value:
任意のオブジェクト。真偽値として解釈されます。

インスタンスメソッド

garbage_collect -> nil[permalink][rdoc]

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

GC.startObjectSpace.#garbage_collect と同じ働きをします。 GC.disable により GC が禁止されている場合は何もしません。

nil を返します。