J'utilise Log4J dans mon application de journalisation. Auparavant, j'utilisais l'appel de débogage comme:
Option 1:
logger.debug("some debug text");
mais certains liens suggèrent qu'il est préférable de vérifier d' isDebugEnabled()
abord, comme:
Option 2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
Ma question est donc "l' option 2 améliore-t-elle les performances de quelque manière que ce soit? ".
Parce que dans tous les cas, le framework Log4J a la même vérification pour debugEnabled. Pour l'option 2, cela peut être avantageux si nous utilisons plusieurs instructions de débogage dans une seule méthode ou classe, où le framework n'a pas besoin d'appeler la isDebugEnabled()
méthode plusieurs fois (à chaque appel); dans ce cas, il n'appelle la isDebugEnabled()
méthode qu'une seule fois, et si Log4J est configuré pour déboguer le niveau, il appelle en fait la isDebugEnabled()
méthode deux fois:
- En cas d'affectation de valeur à la variable debugEnabled, et
- En fait appelé par la méthode logger.debug ().
Je ne pense pas que si nous écrivons plusieurs logger.debug()
instructions dans la méthode ou la classe et la debug()
méthode d' appel selon l'option 1, cela représente une surcharge pour le cadre Log4J par rapport à l'option 2. Étant donné qu'il isDebugEnabled()
s'agit d'une très petite méthode (en termes de code), elle pourrait être un bon candidat pour la doublure.