サーバーのログはかなり網羅的だと感じています。ログ出力を無効にするか減らす方法はありますか? ドキュメントをサーバーに送信するstdout
と、パフォーマンスを低下させる可能性のあるコンテンツが書き込まれるようです。
どうにかしてそれを行うことはできますか?
アップデート
サーバーからの出力を抑制する方法を見つけました。それでも私の質問は、実際のサーバーのコマンドライン引数を使用してこれを行う方法と場合です。ただし、汚い回避策の場合、次の方法でオーバーヘッドを軽減できるようです。
でサーバーを実行する
java -mx6g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -prettyPrint false 2&>1 >/dev/null
どこで>/dev/null
出力を何もパイプしません。残念ながら、これだけでは役に立ちませんでした。2&>1
ここでトリックを行うようです。私はそれが実際に何をしているのかわからないことを告白します。ただし、2 つの実行を比較しました。
2&>1 >/dev/null で実行
Processed 100 sentences
Overall time: 2.1797 sec
Time per sentence: 0.0218 sec
Processed 200 sentences
Overall time: 6.5694 sec
Time per sentence: 0.0328 sec
...
Processed 1300 sentences
Overall time: 30.482 sec
Time per sentence: 0.0234 sec
Processed 1400 sentences
Overall time: 32.848 sec
Time per sentence: 0.0235 sec
Processed 1500 sentences
Overall time: 35.0417 sec
Time per sentence: 0.0234 sec
追加の引数なしで実行
ParagraphVectorTrainer - Epoch 1 of 6
Processed 100 sentences
Overall time: 2.9826 sec
Time per sentence: 0.0298 sec
Processed 200 sentences
Overall time: 5.5169 sec
Time per sentence: 0.0276 sec
...
Processed 1300 sentences
Overall time: 54.256 sec
Time per sentence: 0.0417 sec
Processed 1400 sentences
Overall time: 59.4675 sec
Time per sentence: 0.0425 sec
Processed 1500 sentences
Overall time: 64.0688 sec
Time per sentence: 0.0427 sec
これは非常に浅いテストでしたが、かなりの影響があるようです。ここでの差は 1.828 倍であり、時間の経過とともにかなりの差になります。
ただし、これは簡単なテストであり、結果が完全に正常であるとは保証できません。
さらに更新:
これは、JVM が時間の経過とともにコードを最適化する方法に関係していると思いますが、1 センテンスあたりの時間は、ローカル マシンでの時間と比較できるようになります。ロギング2&>1 >/dev/null
を排除するために以下の結果が得られたことを覚えておいてください。stdout
Processed 68500 sentences
Overall time: 806.644 sec
Time per sentence: 0.0118 sec
Processed 68600 sentences
Overall time: 808.2679 sec
Time per sentence: 0.0118 sec
Processed 68700 sentences
Overall time: 809.9669 sec
Time per sentence: 0.0118 sec