detachメソッドを使用してスレッドでperlスクリプトを実行しようとしています。アプリケーションは24時間年中無休で永続的に実行されることになっています。この例を使用しようとしています。
しかし、この例をより長い期間実行すると、メモリが絶えず増加していることがわかります。どうすればこれを回避できますか?threads->detach
メモリを増やさずにこの方法を使用するにはどうすればよいですか?
detachメソッドを使用してスレッドでperlスクリプトを実行しようとしています。アプリケーションは24時間年中無休で永続的に実行されることになっています。この例を使用しようとしています。
しかし、この例をより長い期間実行すると、メモリが絶えず増加していることがわかります。どうすればこれを回避できますか?threads->detach
メモリを増やさずにこの方法を使用するにはどうすればよいですか?
別のアプローチは、Parallel :: ForkManagerモジュール(単純な並列処理フォークマネージャー)の使用です。私はそれを使用し、作業を完了しました(メモリリークのない長時間実行プロセス)。
コードまたは切り離そうとしているものを投稿できますか?
切り離されたプログラムを実行するためだけに pool.pl を使用する必要はありません。
あなたができる最も簡単なことは
use threads;
use threads::shared; # if required,
###loop main prog
my $detach_thread = threads->create(
sub {
# DO YOUR STUFF here
return;
}
);
$detach_thread->detach();
考慮すべき他の代替手段は、バックグラウンドで実行することです (UNIX の場合: yourcommand &
)。