私は、2 つのプロセスが殺されると再起動し続けるため、できるだけ早く 2 つのプロセスを繰り返し殺すべき Java プログラムに取り組んでいます。もちろん、CPU 時間を使いすぎてはいけません。私はほとんど同じプログラムを Python で書きましたが、CPU の約 5% を使用してうまく動作します。withを
使用して実行中のすべてのプロセスを一覧表示し、文字列で不要なプロセスの名前を検索してから、exec withを実行してプロセスを強制終了しました。これは私が思いついた最初の方法でした。どんなアイデアでも大歓迎です。
しかし、コードを実行すると、コンピューターが熱くなり続け、いくつかのタイミング テストの後、コマンドに 15 ~ 25 ミリ秒かかることがわかりました。では、なぜそんなに時間がかかるのでしょうか?Runtime.exec
"ps -ax"
"killall -9" + process_name
exec
ところで、私は mac os を使用していますが、ソリューションがプラットフォームに依存しないかどうかは気にしません。
質問する
329 次
1 に答える
1
私は、Javaがこの仕事に適したツールではないことに同意します。私はまた、これがそもそもかなりばかげたことのように思われることにも同意します。私の場合、そもそもデーモンを実行しないようにすることに集中します。
必要なすべての機能を備えたbashスクリプトを作成するだけで、プロセスの作成時間を節約できます。psの出力をgrepにフィードして、削除する必要のあるプロセスだけを取得し、それを渡して強制終了することができます。
psパラメーターを使用して、名前、ユーザー、またはグループで適切なプロセスを選択すると、実行がさらに安価になります。
于 2012-06-28T17:43:26.803 に答える