このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

idle

発言者:鈴木一史
( Date Saturday, May 03, 1997 02:09:04 )


他の話題と似ているのですが,少し違う内容なので新規に投稿します。
メモリ常駐のapletを作る際に,
on idle
end idle
だけでは他のアプリケーションへの動作速度の影響が出るので,
on idle
 return 3600
end idle
などのように,なるべく長い時間でループするようにした方がいいという
話を耳にしたことがあるのですが,本当でしょうか。
また,idleを定義しない場合とのパフォーマンスの違いはあるのでしょうか。
もちろん,以上はidle中に特定の動作を行わないことが前提です。

田中求之 さんからのコメント
( Saturday, May 03, 1997 02:27:53 )

理論上はパフォーマンスの違いが出るはずですが、実際は気にするほどのことはない
(有意の差はない)と思います。厳密にはかったことはありませんが。

私も、CGI などでは、気休めに idle ハンドラーの return の値を24時間に
設定したりしていますが、特に必要はないと感じています。


大分県 安東 さんからのコメント
( Thursday, May 08, 1997 10:56:20 )

割り込み質問させて下さい。(^^;

スクリーンセーバーのように、一定時間操作がなければ〜という判断は
出来ないでしょうか ?

cronかなにかでキックしてもらえばいいのかなあ...


稲垣@信州 さんからのコメント
( Thursday, May 08, 1997 12:01:10 )

 うる覚えではっきりしていないのですが、どこかのスクリプトで
あったのは、

on idle

 何か処理をしたら、time = 0 とする

 set time to time + 30
 if time > 300 then

   プロセスの終了

 end if
 return 30
end idle

 適当に書いたのもなので、実際にあっているか分かりませんが、
みたいな、業を使えば出来るのではないでしょうか?

稲垣@信州 さんからのコメント
( Thursday, May 08, 1997 13:52:09 )

 よくよく思い出したら、「Macintoshインターネットサーバ構築術」に
「CGIスクリプトの Hints & Tips」として、掲載されています。

 ページは、p155です。


田中求之 さんからのコメント
( Thursday, May 08, 1997 15:04:13 )

スクリーンセーバーのように、一定の間、一切の操作が行われなかったら、という
のを AppleScript で検出することは無理です。

CGI の idle ハンドラーは、あくまでも「そのスクリプトが一定時間実行されなかった
ら」という条件を監視できるだけで、ほかのアプリケーションに関しては監視していま
せんよ。


大分県 安東 さんからのコメント
( Thursday, May 08, 1997 18:00:22 )

アドバイスありがとうございます。

うーん、残念。(^^;

今後とも宜しくお願いします。