minilightのメモリ使用状況を調べてみた
メモリプロファイラを使ってminilightがどうメモリを使っているか調べてみました。あっさり動いたのがびっくりです。
FloatやArrayのオブジェクトをがしがし作って必要最低限のもの以外GCで回収される様子が分かります。
ちなみに、これがヒープサイズを細分化する前(2008/4/18バージョン)のものでヒープサイズを細分化するバージョン(2008/5/9バージョン)だとこんな感じになります。
残念ながら、ヒープの細分化が裏目に出て遅くなるわ、メモリを余計に使うわとなっています。使用メモリがひたすら増大するようなアプリケーションでは相性が悪いのかもしれません。でも、私の測定の仕方が悪いというのが一番ありそうです。
一度、Webアプリケーションなどの仕事が一段落するプログラムで試してみたいのですが、そのようなプログラムを持っていないです・・・。
追記
細分化バージョンでこの前のサンプルプログラム
a = [] (1..1000000).each do |n| a.push n.to_s end (1..1000000).each do |n| a[n] = n if n % 100000 == 0 then ObjectSpace.garbage_collect end end
を実行してみました。この例だとちゃんとトータル使用量も減っているしメモリが無駄なく使われていることが分かります。
細分化無し
細分化あり