[ 
https://issues.apache.org/jira/browse/HADOOP-6884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12900377#action_12900377
 ] 

Tsz Wo (Nicholas), SZE commented on HADOOP-6884:
------------------------------------------------

> What does this show? ...

Your benchmark also shows that LOG.isDebugEnabled() provides the best results.  
A patch using this approach is already there.  Do you really want to stop 
committing it?

There may be other comparable solutions out there but (1) we don't have a patch 
yet, (2) it may require further modifying the codes and (3) the performance is 
not as good as LOG.isDebugEnabled().

I forgot to mention that my benchmark only measures running time but it does 
not account the GC overhead induced by unnecessary object creation due to 
auto-boxing.  This is another reason that LOG.isDebugEnabled() is better than 
the other suggested solution.

> Add LOG.isDebugEnabled() guard for each LOG.debug("...")
> --------------------------------------------------------
>
>                 Key: HADOOP-6884
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6884
>             Project: Hadoop Common
>          Issue Type: Improvement
>    Affects Versions: 0.22.0
>            Reporter: Erik Steffl
>            Assignee: Erik Steffl
>             Fix For: 0.22.0
>
>         Attachments: FunAgain.java, FunAgain.java, HADOOP-6884-0.22-1.patch, 
> HADOOP-6884-0.22.patch
>
>
> Each LOG.debug("...") should be executed only if LOG.isDebugEnabled() is 
> true, in some cases it's expensive to construct the string that is being 
> printed to log. It's much easier to always use LOG.isDebugEnabled() because 
> it's easier to check (rather than in each case reason whether it's necessary 
> or not).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to