対したがって、デバッグロギングをオフにしても、そのステートメントは実行されません。しかし、私はちょうど、特にスカラ座のロギングライブラリの多くは、Logulaを使用していないとは異なりパフォーマンスは値による呼び出し、私は最近、様々なScalaのログ図書館で見てきたし、それらの大半は</p> <pre><code>def debug(s: => String) </code></pre> <p>としてのログ機能を実装による呼び出し名
その利点の一つとして述べてlogulaに出くわした 渡しの名前の意味(例えば、F:=> A)そのログ・ステートメントについて、 二つのことを意味している:Scalaのコンパイラは、各ログ文の一回限りの閉鎖オブジェクトを作成する必要はありません
- を。これはゴミの量を減らすはずです 収集圧力。
これは実際に私には分かりやすいものです。だから私の質問は、2つのアプローチを比較する実績のベンチマーク/データはありますか?理想的には、ライブプロジェクトのものと、工学的なベンチマークとの比較
「個人的には、このような第一原理のトレードオフの理解は、特定のアプリケーションの事例研究よりも価値がある」と私は確信しているが、現実はあなたとは全く違う獣予期する。ベンチマークではなく実際のケースを探しているのは、誰でもベンチマークを書くことができるため、一方通行が100万倍も速く見えるからです。私自身の好奇心のために、正に、どのアプリケーションが本当にボトルネックを記録しているのか? – Falmarri
@Falmarri - 例から推測すると、あなたが期待するものとは異なる場合があります。だから私は基本的なトレードオフについて説明した。私はロギングがほとんどのアプリケーションでボトルネックにならないはずだと同意します。 –
@Falmarriまあ...あなたはすべてを測定しますか?キューのサイズ、スループット、応答時間など、アプリケーションのあらゆるステップを測定して誓う人がいます。あなたがそのルートに行くなら、総時間にあなたのロギングを追加したくないです。実際には、非同期であることを望みます。 –