From ruby-ext-admin@netlab.co.jp Fri Jul 30 15:38:38 1999 Received: from voscc.nagaokaut.ac.jp (voscc.nagaokaut.ac.jp [133.44.1.100]) by blade.nagaokaut.ac.jp (8.8.8/8.8.8/Debian/GNU) with ESMTP id PAA00813; Fri, 30 Jul 1999 15:38:38 +0900 Received: from hoyogw.netlab.co.jp (matz@localhost [127.0.0.1]) by hoyogw.netlab.co.jp (8.9.3+3.2W/3.7W/1.3) with SMTP id PAA05384; Fri, 30 Jul 1999 15:36:27 +0900 Date: Fri, 30 Jul 1999 15:36:25 +0900 From: matz@netlab.co.jp (Yukihiro Matsumoto) Reply-To: ruby-ext@netlab.co.jp Subject: [ruby-ext:00353] Re: Ruby/Gtk + Imlib patch To: ruby-ext@netlab.co.jp (ruby-ext ML) Message-Id: In-Reply-To: "Dai.K."'s message of "Fri, 30 Jul 1999 15:27:59 +0900" <19990730152759T.MAP2303@narnia.nis.nec.co.jp> References: <19990730151548K.deki@campari.sol.pfu.co.jp> <19990730152759T.MAP2303@narnia.nis.nec.co.jp> X-ML-Name: ruby-ext X-Mail-Count: 00353 X-MLServer: fml [fml 2.2]; post only (only members can post) X-ML-Info: If you have a question, send a mail with the body "# help" (without quotes) to the address ruby-ext-ctl@netlab.co.jp; help= X-Mailer: cmail 2.60 on GNU Emacs 20.3.2 / Mule 4.0 (HANANOEN) User-Agent: SEMI/1.13.5 (=?ISO-8859-4?Q?Meih=F2?=) FLIM/1.13.1 (Tawaramoto) Emacs/20.3 (i386-debian-linux-gnu) MULE/4.0 (HANANOEN) Mime-Version: 1.0 (generated by SEMI 1.13.5 - =?ISO-8859-4?Q?=22Meih=F2=22?=) Content-Type: text/plain; charset=ISO-2022-JP Precedence: bulk Lines: 17 まつもと ゆきひろです In message "[ruby-ext:00352] Re: Ruby/Gtk + Imlib patch" on 99/07/30, "Dai.K." writes: | あ、なるほど。Data_Wrap_Struct() で持つ構造体のサイズが膨大なんですね。 | ちょうど、GC のタイミングに「malloc() が一定数を越えたとき」ってのが |あるらしいので、構造体のメモリ確保に ruby の malloc() である xmalloc() を |使ってみればいいんじゃないでしょうか? xmalloc()が使えれば良いですが、imlibの内部でmallocしてるんで しょうから無理ですね。とはいえ、GCはあまり頻繁にやっても良い と手放しで言えるほどには軽くないので、たとえば画像のサイズの 合計をとっておいてある一定の大きさを越えた時点でGCする(この 場合の閾値はカンと経験で決める)とかいう手が使えるかもしれま せん。 まつもと ゆきひろ /:|)