[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mgp-users-jp 00144] Re: XFreeFont in draw.c
- To: mgp-users-jp@mew.org
- Subject: [mgp-users-jp 00144] Re: XFreeFont in draw.c
- From: Shigeya Suzuki <shigeya@foretune.co.jp>
- Date: Tue, 12 May 1998 10:34:06 +0900
- In-reply-to: Your message of "Tue, 12 May 1998 10:21:23 +0900" <>
- Posted: Tue, 12 May 1998 10:33:59 +0900
- References: <>
- Reply-to: mgp-users-jp@mew.org
>>>>> "onoe" == Atsushi Onoe <onoe@sm.sony.co.jp> writes:
僕もXは全然なんですが、
onoe> どうしたもんでしょうね。。。
いまちろっと見ていましたが、これでは遅いでしょう。
1.00a のソースなので、少しふるいかもしれないけれど、
>> static XFontStruct *xfontstruct;
>> if (strcmp(xfont, last_xfont) || char_size != last_char_size) {
>> /* load new font */
>> if (xfontstruct)
>> XFreeFont(display, xfontstruct);
>> if (xfontstruct = XLoadQueryFont(display, fontstring))
>> break;
font のロード/purgeって、それはそれは遅い処理だと思うので、font name
と char_size の組みで連想させてキャッシュつくらないと、今の実装だと、
毎回やるからおそいです。たぶん、Free すると遅くなるのではなくて、Free
していないと、キャッシュに乗ってるから、次に query かけたときに、キャッ
シュにみつかるから、遅くないだけだと思います。(たぶん)
たぶん、最初に全体をなめたときに、フォントの一覧つくって、読み込んじゃ
うのが良いのではないかと。(少なくとも、最初のページに出す分だけは)で、
めもり食い過ぎるなら、適当な閾値で cache をパージして回るとかね。
shigeya