いがらしです。 だいぶ間のあいたリブライで申し訳ないのですが…… At Wed, 15 Sep 1999 19:53:07 +0900, in [ruby-list:16799] [Ruby/Gtk bug?], > Ruby/Gtk のサンプル drawing.rb に関してです。 > > この drawing.rb の window を resize すると、 > メモリリークがおこるようです。 > > たとえば、top コマンドで X Server の使用 memory を観察しながら、 > drawing.rb の window を resize させ繰り返すと > 使用メモリがどんどん増えていきます。 > また、メモリを使いきってしまった場合、X ごと落ちてしまいます。 > > Gdk::Pixmap が GC の対象になっていないからではないか > と思うのですが、どのように対処したらよいのかわかりませんでした。 Ruby/GTK 0.22では、GCの対象になりさえすれば正しくリソースが解放 されるようになったと思います。 ただX Serverのリソース消費量を見ていないので、いくらPixmapを大量 に作成してもrubyインタプリタからは見かけ上あまりメモリを使ってい ないように見えています。そのため、参照されていないGtk::Pixmapが すぐにガーベッジコレクトされないことがあります。 大量にPixmapを作ってすぐに捨ててしまうような場面では、Pixmapを参 照をしないようにした後にGC.start等で明示的にGCを起動することによ り、Xのサーバプロセスがふくれ上がる現象は回避できると思います。 もし問題があればまたお知らせ下さい。 -- 五十嵐 宏 (Hiroshi IGARASHI)