If you don't know that it has any noticeable affect on your performance than is that just wasted time?
James Stauffer -----Original Message----- From: Robert Pepersack [mailto:[EMAIL PROTECTED] Sent: Thursday, April 22, 2004 12:21 PM To: Log4J Users List Subject: RE: Which Way of "Extending" Gives Fastest Performance It shouldn't be significant. On page 41 of the book, Ceki says, "This is an insignificant overhead because evaluating a logger takes less than 1% of the time it actually takes to log. If a method contains multiple log statements, it may be possible to factor out the tests." I factor out the tests, because I'm sensitive to performance. At 11:51 AM 04/22/2004 -0500, you wrote: >Is the call to isDebugEnabled actually significant? > >James Stauffer > > > >-----Original Message----- >From: Robert Pepersack [mailto:[EMAIL PROTECTED] >Sent: Thursday, April 22, 2004 11:49 AM >To: Log4J Users List >Subject: Re: Which Way of "Extending" Gives Fastest Performance > > >You could create a class boolean variable that is set once by >isDebugEnabled(). Then you could say: > >private boolean debug = logger.isDebugEnabled(); > >In you method code you could say: > >if (debug) cat.debug(myObject.showState()); > >This would make it so that you only call isDebugEnabled() once in each >class. > > >At 11:54 AM 04/22/2004 -0400, you wrote: > >This is a little off from the original question, and note that we > >also haven't touched any of our logging code in quite a while, but: > > > >We found that we had to address some performance problems where there > >was an insignificant cost to creating the string that we were going > >to send to log4j. > > > >For example, you might have: > > > > cat.debug(myObject.showState()); > > > >or some such thing, and the issue is that even if debug logging is > >disabled, the call into cat.debug() is still made, which means the > >call to > >myObject.showState() is also made, even if the results from showState() > >are in fact never used. > > > >We handled this by wrapping all of logging statements (well, at least > >debug ones, I think) in a conditional, like this: > > > > if (cat.isDebugEnabled()) cat.debug(myObject.showState()); > > > >to avoid that overhead. > > > >I was never really happy with this. I suppose some sort of helper > >object might have made more sense... or is there a better way now to > >deal with >this? > > > >dwh > > > > > >James Stauffer wrote: > > > >>Do you know that logging has a significant effect on your current > >>performance? If it only takes 0.01% of CPU time then it doesn't > >>really matter. > >> > >>James Stauffer > >> > >> > > > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > >Bob Pepersack >410-468-2054 > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] Bob Pepersack 410-468-2054 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]