Строковые объекты являются неизменяемыми, поэтому повторное объединение является дорогостоящей операцией. Требуется повторное выделение памяти, создание объекта и итерация. Учитывая, что некоторые вызовы журналирования на более тонких уровнях журналирования могут вызываться тысячи или миллионы раз в минуту, это может быть значительным приростом производительности, как показано на рисунке. Хотя для небольших приложений это может не стоить дополнительных усилий.
В качестве примечания: Вы можете сохранить еще большую производительность, где это действительно важно, используя такую константу, как эта:
public static final boolean DEBUG = false;
Если вы теперь поместите код регистрации в блок if, такой как этот, JVM сможет полностью оптимизировать вызовы отладки при работе в режиме продукта. Это так же близко к C # ifdef.
if (Globals.DEBUG) {
// Logging call
}