[#18440] racc segv revisited — "Akinori MUSHA" <knu@...>

 次のバグの件なんですが、現時点では原因究明を含めて未解決という

24 messages 2002/10/02
[#18617] Re: racc segv revisited — "Akinori MUSHA" <knu@...> 2002/11/02

At Wed, 2 Oct 2002 23:19:59 +0900,

[ruby-dev:18491] Re: mem leak?

From: WATANABE Tetsuya <tetsu@...>
Date: 2002-10-11 01:21:18 UTC
List: ruby-dev #18491
渡辺哲也です。

対応ありがとうございます。

In message "[ruby-dev:18487] Re: mem leak?"
    on 02/10/10, nobu.nakada@nifty.ne.jp さん writes:

|なかだです。

|正確に計算するのは無理があるので、大雑把ですがこんなところでど
|うでしょうか。[ruby-dev:18482]で試したところでは7MB弱になりまし
|た。GCの速度がどの程度落ちるかは測ってみてませんが。

こちらでも、動作を確認しました。

ことのはじまりは、Ruby でネットワーク経由
のデータ受けとりサーバを書いていたのです。
普通に? while do end していたら、どんどん
プロセスが大きくなって、200MB(RSS) オーバ
してしまいました。この状態は、page out が
頻発して、システムにかなり影響がありまし
た(う、重い...)。

GC すればいいのは、気がついたのですが、GC 
を入れるタイミングを、一つの処理のループ
ないに入れてしまうと、そこそこの記述にな
りますし。

while で回している間、メモリに抱え込んで
しまうのは、やっぱり困るなと思ったのです。

処理速度なのですが、やはり遅くなっている
ようです。こういうの微妙ですね。遅くなっ
たのは、100MB のデータをネットワーク経由
で転送するもので、ちょい特殊ですけど。
100MB というようなデータを扱わなければ、
最近のシステムはメモリが大きいので大丈夫
なのかもしれませんね。

メモリを豊富に使えるシステムの場合で速度
が必要な場合、自分で GC をコントロールす
るのがいいみたいです。GC.disable して、必
要なときに GC.enable GC.start という手順
を実施すればよさそうです。

# 人によっては、逆の場合もあるでしょうね。
# デフォルトがどちら側についているか? が
# 微妙なところです。実メモリに近い(以上の)
# データを扱わなければ、気がつかないです
# し。難しい...

GC.disable 中に GC.start だけ実施しても 
GC は、動かないようですね。

In This Thread

Prev Next