En un sistema de registro, cada salida del registro es realizado por una clase de ayuda con un método como este¿Qué tan caro es Thread.getStackTrace()?
public void debug(String message) {
Logger logger = Logger.getLogger(getCallingClass());
logger.debug(message);
}
...
public Class getCallingClass() {
/*
Calls Thread.getStackTrace() and back traces until the class on the stack trace
!= this.getClass().
*/
return classFound;
}
¿Qué tan caro es esta habilitada y puede que tenga éxitos significativas en el rendimiento?
En lugar de usar un indicador booleano, esta condición podría utilizarse como registrador.isDebugEnabled() – Inv3r53
una mejor manera es usar directivas de preprocesamiento. – Orentet
Hay beneficios para ambos. con el booleano final estático, el compilador simplemente eliminará cualquier cosa dentro de la sentencia if(), por lo que es como una directiva de preprocesador;) – Kylar