ログ ファイルからパターンに一致する行を抽出しています。したがって、各ログ ファイルを、見つかったパターン行を結果ファイルに書き込む Runnable オブジェクトに割り当てました。(よく同期されたライター メソッド)
議論中の重要なスニペット:
ExecutorService executor = Executors.newFixedThreadPool(NUM_THREAD);
for (File eachLogFile : hundredsOfLogFilesArrayObject) {
executor.execute(new RunnableSlavePatternMatcher(eachLogFile));
}
重要な基準:
ログ ファイルの数は 20 のように非常に少ない場合もあれば、ログ ファイルの数が 1000 を超える場合もあります。一連のテストを Excel シートに記録しましたが、赤でマークされた結果が非常に気になります。
1. 作成されたスレッドの数が処理されるファイルの数と等しい場合、スレッドの数が処理されるファイルの数よりも少ない場合と比較して、処理時間は短くなると思います。起こりません。(私の理解が間違っていたら教えてください)
結果 :
- 少数のファイルと数千のファイルに効率的な NUM_THREAD の値を特定したいと思います
質問 1 と 2 の回答を提案してください
ありがとう !チャンドル