LoggerFactory.getLogger (ClassName.class) против LoggerFactory.getLogger (this.getClass (). GetName ())

Я пытаюсь улучшить свои навыки оптимизации в Java. Чтобы добиться этого, у меня есть старая программа, которую я сделал, и я стараюсь изо всех сил, чтобы сделать ее лучше. В этой программе я использую SL4J для регистрации. Чтобы получить регистратор я сделал:

private static final Logger logger = LoggerFactory.getLogger(this.getClass().getName());

В то время, когда я писал код, я думал, что это лучший вариант, потому что я удаляю ссылку на имя класса (которое может быть изменено). Но теперь я больше не уверен ...

private static final Logger logger = LoggerFactory.getLogger(ClassName.class);

С другой стороны, сохраняет ссылку на имя класса, но удаляет один вызов метода. Это не может быть большим улучшением производительности для одного класса, но когда у вас много классов, это может быть что-то.

Итак, мой вопрос:

Какой подход лучше? Использование имени класса или его отражение?

Пожалуйста, мотивируйте свой ответ за и против. Спасибо.

Ответы на вопрос(7)

Ваш ответ на вопрос