ささだです.

 あるオブジェクトがどの程度メモリを食っているのか調べるための体系を作る
のはどうでしょうか.

rb_ary_memsize(), onig_memsize(), rb_str_memsize(), rb_io_memsize(),
st_memsize(), rb_transcoding_memsize(), rb_econv_memsize() を作ってみま
した.
http://www.atdot.net/sp/readonly/qzm8lk

 多分,数え間違ってるだろうし,メモリアローケーション,まぁ,死ぬ
(SEGV)することもないだろう,とか.


 例えば,こんなふうにすると,ObjectSpace.count_objects のように,T_hoge
ごとのメモリ利用量を調べる ObjectSpace.count_objects_size を作ることが出
来ます.

http://www.atdot.net/sp/readonly/45n8lk

 これと,ObjectSpace.count_objects を併用して,1オブジェクトあたりのメ
モリ使用量の平均を出したグラフ:
http://www.atdot.net/fp_store/f.lk88lk/file.g.png

 ファイルが偉い大きくなってますね.

 このままだと,T_DATA をまともに扱うことが出来ないのですが,この辺を扱
うための仕組みはまた今度提案します.

-- 
// SASADA Koichi at atdot dot net