Namazu-win32-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: チェックポイント機能の動作



白井です。

checkpoint って使ったことが無かったので、興味半分で
$ON_MEMORY_MAX を小さい値にして実験してみました。

# Win9x で exec がちゃんと動くとは思えないけど。。。
# という予想。

From: Osamu Okano <osamu2001@xxxxxxxxxxxx> さん曰く
Subject: [namazu-win32-users-ja] チェックポイント機能の動作
Message-ID: <38ED8887334.784DOSAMU2001@xxxxxxxxxxxxxxxxx>
Date: Fri, 07 Apr 2000 16:04:39 +0900

Okano> -sオプションを用いたチェックポイント機能の
Okano> ウィンドウズでの正しい動作について質問があります。

Okano> wintopで実行の様子を見ると、
Okano> ある程度まで処理が進むとチェックポイントに到達して
Okano> mknmzが再実行されます。
Okano> これが繰り返されて8回ほど再実行されると
Okano> 音もなく死亡します。(理由は不明)

1. UNIX + Perl 5.005_02
 (当然ですが) 予定の動作で動きました。:-)

2. WinNT4.0 SP5 +  Perl 5.005_03(Binary build 522)
 1000個程のファイルで 9回チェックポイントに到達しましたが、じ〜〜
 とメモリ仕様量を見ていると、そのたびに開放しているようです。ま
 た、プロセスも終了しています。

 ただし、mknmz 280行目ぐらいの

    exec ($0, @ARGV) ;

 でエラーにならない起動の方法が、『DOS 窓で mknmz.bat を動かす』
 という方法でしか出来なかったのですが、最初のチェックポイントに
 到達すると bat が終了してしまい(あとは裏で動いている)、相当使い
 にくいとは思います。(なんか NT の DOS って良く動作がわかんない)

3. Win95 OSR2 + Perl は NT と一緒。
 これもじ〜〜〜と見ていたら、メモリの開放は行われていないようで
 す。なおかつ、途中で固まってしまって、redirect していた stdout
 も残りませんでした。さすが、WinXX。 ^^;;;
 そのため、何回目のチェックポイントかわかりませんでした。

Okano> それと再実行される前のプロセスが
Okano> いつまでも死なずに残っています、それはいいのですが

## あんまり良くないです。これやると、その後とっても不安定になっ
## たりするんです、私の場合 :-)

Okano> その死んでいないプロセスがメモリを解放せずに
Okano> 70MBとかの大きさで存在してます。
Okano> これってかえってメモリの使用量が激増してるようなのですが・・・
Okano> これは正しい動作なのでしょうか?
Okano> それとも本当はメモリーは解放されるものなのでしょうか?

青ラクダを読んでみると、

青ラクダ> exec LIST

青ラクダ> 現在実行している Perl スクリプトを終了して、代わりに別
青ラクダ> プログラムを(同じプロセスで)実行する。

終了するのだから、普通の OS なら当然使用していたメモリも開放しま
すよね。その後にはこう書いてありました。

青ラクダ> LIST が 2つ以上の要素を含む場合、LIST の内容を引数とし
青ラクダ> て C の execvp(3) を実行する。

この説明は UNIX の場合でしょうから、exec の動作がどうなるかは完
全に OS に依存すると思うのです。で、私の考えだと、Win9x の様な極
めて脆弱な OS が、自分自身を起動し直すなんていう難しいことをちゃ
んとできたら、そっちの方が驚きだったりします。^^;;;

active state を見に行ったら Perl 5.6 base があったのですが、私は、
他の Perl script が動かなくなるとまずいので試せません。もしかし
たら、きちんと動くようになっていたりするかもしれませんけど。。。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)