[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:06989] Re: xearth-ja too large!
香田@徳島大学です。あと少しのような。。。
Ken N. writes:
> In <199807130720.QAA01059@xxxxxxxxxxxxxxxxxxxxxxxx>
> [debian-users:06957] Re: xearth-ja too large!, Jul.13 '98 16:21 JST
> kohda@xxxxxxxxxxxxxxxxxxxx says:
> =
> = ごくわずかですがメモリ使用が増えてはいるようなのですが,
> = パッチを見るかぎり他には何もしてないようですが。
> = 起動直後に ps lu での %MEM が 2.7% だったのが一時間ちょっとで
> = 3.8% になっています。(以前は 50% を越えてたような)
>
> XFreeFontSet()もmemory leakしているのかもしれません。MotifやXlibは
> その内部でさえmemory leakする場合が少なくないんです。
>
> `draw_outlined_string()'関数は頻繁に呼び出されているであろうという
> ことが容易に想像できます。もしも、XFreeFontSet()がわずかでもmemory
> leakしていれば、その累積はばかにならない量になるでしょう。
>
> この場合の本質的解決は、XCreateFontSet()の呼び出しタイミングを変更
> することです。draw_outlined_string()を良く見てみるとわかるように、
> この関数の中で毎回FontSetを生成する必然性があるとしたらそれは、
> draw_outlined_string()が毎回異なるDisplayを与えられて呼び出される
> 場合だけです。これが成り立たないならば、FontSet生成を、例えば
> command_line_x()関数の中で一度だけ行なうようにしてもいいわけです。
鵜飼さんに教えていただいた XFreeStringList() とかも使って
みたりしたのですが,どうしてもごくわずかずつ増えてしまう
ようなので,私にでも本質的に思える,この
「command_line_x()関数の中で一度だけ行なう」にして
みました。下手にやって core dump とかしていたのですが
やっと動くようになりました。
でこの場合も XFreeFontSet() とかはどこかで呼ばないと
いけないのでしょうか,それともこの場合は呼ばなくてよい
のでしょうか。
呼ぶ必要があるとしたらどこが適当でしょう??
# 下手に呼ぶと core dump してしまうので今は呼ばないので
# テスト中ですが最初少し増えますが %MEM で 2.5% ぐらいで
# 安定するようなのですが。
Atsuhito Kohda writes:
> オリジナルの xearth を試していますが,非常に微妙ではっきり
> しませんが少しは増えてるかな?
> 2.0% が一時間ほどで 2.2% になっていました。
これはその後,二時間ぐらいしても増えてなかったので
オリジナルは問題ないようでした。
平成10年7月14日(火)
--
***************************
香田 温人(こうだ あつひと)
http://www1.pm.tokushima-u.ac.jp/%7Ekohda/