Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > objspaceライブラリ > ObjectSpaceモジュール > count_tdata_objects

module function ObjectSpace.#count_tdata_objects

count_tdata_objects(result_hash = nil) -> Hash[permalink][rdoc] [added by objspace]

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

[PARAM] result_hash:
戻り値のためのハッシュを指定します。省略した場合は新しくハッシュを作成します。result_hash の内容は上書きされます。プローブ効果を避けるために使用します。
[EXCEPTION] TypeError:
result_hash にハッシュ以外を指定した時に発生します。

本メソッドは普通の Ruby プログラマ向けのメソッドではありません。パフォーマンスに興味のある C Ruby の開発者向けのものです。



ObjectSpace.count_tdata_objects
# => {RubyVM::InstructionSequence=>504, :parser=>5, :barrier=>6,
#     :mutex=>6, Proc=>60, RubyVM::Env=>57, Mutex=>1, Encoding=>99,
#     ThreadGroup=>1, Binding=>1, Thread=>1, RubyVM=>1, :iseq=>1,
#     Random=>1, ARGF.class=>1, Data=>1, :autoload=>3, Time=>2}

現在のバージョンでは、戻り値のキーはクラスオブジェクトかシンボルのオブジェクトです。

普通の参照可能なオブジェクトの場合、キーはクラスオブジェクトです。それ以外の内部的なオブジェクトの場合、キーはシンボルです。シンボルの値は rb_data_type_struct に格納された名前が使用されます。

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

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