Ruby 2.5.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 を 登録します。同じオブジェクトについて複数回呼ばれたときは置き換えで はなく追加登録されます。現在のセーフレベルと 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 を返します。

追加されるメソッド

定義 説明 ライブラリ
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