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)