В log4j повышает ли производительность проверка isDebugEnabled перед записью в журнал?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 В log4j повышает ли производительность проверка isDebugEnabled перед записью в журнал?

Сообщение Anonymous »

Я использую Log4J в своем приложении для ведения журналов. Раньше я использовал вызов отладки, например:
Вариант 1:

Код: Выделить всё

logger.debug("some debug text");
но некоторые ссылки предполагают, что лучше сначала проверить isDebugEnabled(), например:
Вариант 2:

Код: Выделить всё

boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Поэтому мой вопрос: «Повышает ли вариант 2 производительность каким-либо образом?».
Потому что в любом случае платформа Log4J имеет такую ​​же проверку для debugEnabled. Для варианта 2 может быть полезно использовать несколько операторов отладки в одном методе или классе, где платформе не нужно вызывать метод isDebugEnabled() несколько раз (при каждом вызове); в этом случае он вызывает метод isDebugEnabled() только один раз, а если Log4J настроен на уровень отладки, то фактически он вызывает метод isDebugEnabled() дважды:
  • В случае присвоения значения переменной debugEnabled и
  • Фактически вызывается методом logger.debug().
Я не думаю, что если мы напишем несколько операторов logger.debug() в методе или классе и вызовем метод debug() в соответствии с вариантом 1, то это будет накладными расходами для платформы Log4J по сравнению с вариантом 2. Поскольку isDebugEnabled() — очень маленький метод (с точки зрения кода), он может быть хорошим кандидатом для встраивания.>

Подробнее здесь: https://stackoverflow.com/questions/963 ... erformance
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»