[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/