String を減らすことでパフォーマンスを向上させると言えconcatenations
ます。
これを書くと
"Processing trade with id: " + id + " symbol: " + symbol
印刷文字列を手動で作成しています。
あなたが書くとき
"Processing trade with id: {} and symbol : {} ", id, symbol
-------^id------------^symbol---------
2 番目の方法では、出力前に内部的にslf4j
維持され、連結を使用して新しい文字列を再度生成します (ソース コードを確認していないため、a である可能性がありますStringBuilder
)。
プレースホルダーとして呼び出され、{}
渡された引数に置き換えます。
sl4jのドキュメントから
この形式は、ロガーが DEBUG レベルで無効になっている場合に、余分な文字列の連結を回避します。ただし、このバリアントでは、このロガーが DEBUG に対して無効になっている場合でも、メソッドを呼び出す前に Object[] を作成するための隠れた (そして比較的小さい) コストが発生します。1 つまたは 2 つの引数を取るバリアントは、この隠れたコストを回避するためだけに存在します。
フォーマットの使用方法をお読みください: Scala で java.String.format を使用するには?