{}
文字列連結の代わりにを使用する利点はありますか?
slf4jからの例
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
の代わりに
logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT);
設定ファイルによっては、実行時にパラメータ評価 (および文字列の連結) を回避できるため、速度の最適化が目的だと思います。ただし、パラメータは 2 つしか使用できないため、文字列の連結以外の選択肢がない場合もあります。この問題に関する意見が必要です。
ベストアンサー1
それは文字列連結のパフォーマンスについて。ログ記録ステートメントが密集している場合は、これが重要になる可能性があります。
(SLF4J 1.7以前) ただし、パラメータは2つしか使用できません
ログ記録ステートメントの大部分は 2 個以下のパラメータを持つため、バージョン 1.6 までの SLF4J API は、ほとんどのユースケースをカバーします (のみ)。API 設計者は、API バージョン 1.7 以降、varargs パラメータを持つオーバーロード メソッドを提供しています。
2 つ以上が必要で、1.7 より前の SLF4J を使用している場合は、文字列連結または を使用しますnew Object[] { param1, param2, param3, ... }
。それらの数は少なくなるため、パフォーマンスはそれほど重要ではありません。