Я використовую Log4J у своїй програмі для ведення журналів. Раніше я використовував виклик налагодження на зразок:
Варіант 1:
logger.debug("some debug text");
але деякі посилання підказують, що краще спочатку перевірити isDebugEnabled()
, наприклад:
Варіант 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Тож моє запитання: " Чи покращує продуктивність 2 спосіб? ".
Тому що в будь-якому випадку рамки Log4J мають однакову перевірку на налагодження. Для варіанту 2 це може бути корисно, якщо ми використовуємо кілька операторів налагодження в одному методі або класі, де фреймворк не потребує виклику isDebugEnabled()
методу кілька разів (під час кожного виклику); у цьому випадку він викликає isDebugEnabled()
метод лише один раз, і якщо Log4J налаштований на рівень налагодження, він фактично викликає isDebugEnabled()
метод двічі:
- У разі присвоєння значення debugEnabled змінної та
- Фактично викликається методом logger.debug ().
Я не думаю, що якщо ми пишемо декілька logger.debug()
операторів у методі чи класі та debug()
методі виклику відповідно до варіанту 1, то це накладні витрати на рамку Log4J порівняно з варіантом 2. Оскільки isDebugEnabled()
це дуже маленький метод (з точки зору коду), він може бути хорошим кандидатом на вступ.