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

module ObjectSpace

クラス・モジュールの継承リスト: ObjectSpace

要約

全てのオブジェクトを操作するためのモジュールです。

モジュール関数

定義 説明
_id2ref(id) -> object

オブジェクト ID(BasicObject#__id__)からオブジェクトを得ます。

count_objects(result_hash = {}) -> Hash

オブジェクトを種類ごとにカウントした結果を Hash として返します。

define_finalizer(obj, proc) -> Array
define_finalizer(obj) {|id| ...} -> Array

obj が解放されるときに実行されるファイナライザ proc を登録します。同じオブジェクトについて複数回呼ばれたときは置き換えではなく追加登録されます。固定値 0 と proc を配列にして返します。

each_object {|object| ...} -> Integer
each_object(klass) {|object| ...} -> Integer
each_object -> Enumerator
each_object(klass) -> Enumerator

指定された klass と Object#kind_of? の関係にある全てのオブジェクトに対して繰り返します。引数が省略された時には全てのオブジェクトに対して繰り返します。繰り返した数を返します。

garbage_collect(full_mark: true, immediate_sweep: true) -> nil

どこからも参照されなくなったオブジェクトを回収します。 GC.start と同じです。

undefine_finalizer(obj) -> object

obj に対するファイナライザをすべて解除します。 obj を返します。

追加されるメソッド

定義 説明 ライブラリ
allocation_sourcefile(object) -> String

objectの元となったソースファイル名を返します。

objspace
allocation_sourceline(object) -> Integer

objectの元となったソースファイルの行番号を返します。

objspace
count_nodes(result_hash = nil) -> Hash

ノードの種類ごとの数を格納したハッシュを返します。

objspace
count_objects_size(result_hash = nil) -> Hash

型ごとのオブジェクトサイズをバイト単位で格納したハッシュを返します。

objspace
count_tdata_objects(result_hash = nil) -> Hash

T_DATA の種類ごとにオブジェクトの数を格納したハッシュを返します。

objspace
memsize_of(obj) -> Integer

obj が消費するメモリ使用量をバイト単位で返します。

objspace
memsize_of_all(klass = nil) -> Integer

すべての生存しているオブジェクトが消費しているメモリ使用量をバイト単位で返します。

objspace
reachable_objects_from(obj) -> Array | nil

obj から到達可能なすべてのオブジェクトを返します。マーク不能なオブジェクトを指定した場合は nil を返します。本メソッドを使う事でメモリリークの調査が行えます。

objspace
trace_object_allocations { ... }

与えられたブロック内でオブジェクトのトレースを行います。 

objspace
trace_object_allocations_start -> nil

オブジェクト割り当てのトレースを開始します。

objspace
trace_object_allocations_stop -> nil

オブジェクト割り当てのトレースを終了します。

objspace