From: Masahiro S. ()
<sa...@to...> - 2003-10-04 18:31:49
|
さかいです。 From: Hiroshi IGARASHI <ig...@ru...> Subject: Re: [ruby-gnome2-devel-ja] GCについての質問 Date: Sat, 04 Oct 2003 21:48:40 +0900 > いがらしです。 > > At Sat, 4 Oct 2003 02:04:17 +0900, > Masao Mutoh <mu...@hi...> wrote: > > > > [ 814787 ] Memory leak in Gdk::Pixbuf > > http://sourceforge.net/tracker/index.php?func=detail&aid=814787&group_id=53614&atid=470969 > > > > の件で、確認をしているのですが、 > > 確かに上記にあるサンプルを動かすと画面が固まります。 > > > > でも、GC.startを入れれば正常に動作します。 > > いまはobsoleteなGdk::Imlibでも同じ問題がありました。 > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-ext/1630 > まさ私のやり残しですね。ごめんなさい。 なるほど、そういう問題でしたか。 > ruby-gnomeのGdk::Imlib#renderでは、こんな風に > 外部ライブラリが内部である程度メモリを使ったであろう時点で > 明示的にGCを起動しています。rb_gdkimlib_render_limitを > いくつにすればいいのかというのが難しいんですが。 > > render_count += FIX2INT(w) * FIX2INT(h); > if(render_count > rb_gdkimlib_render_limit){ > rb_gc(); > render_count = 0; > } そういえば、g_mem_set_vtable()を使って、 glibのメモリ管理そのものを置き換えてしまうという手も 使えるかも知れません。 -- 酒井 政裕 / Masahiro Sakai |