hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott Carey (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-6884) Add LOG.isDebugEnabled() guard for each LOG.debug("...")
Date Fri, 27 Aug 2010 00:17:56 GMT

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

Scott Carey commented on HADOOP-6884:
-------------------------------------

What has been shown is that over 80% of the performance problem, if it exists (I believe it
does, but no one has actually shown that here or in the sibling tickets), is corrected by
removing String concatenation in favor of varargs and Object[] creation.

So therefore Object[] creation is at least 5x faster than string concatenation.  Generally
speaking, autoboxing and transient creation of Object[] would be similar in cost, so it is
probably closer to 10x faster.

Pushing on the SLF4J project (which is actively developed, unlike Log4j and commons-logging,
etc) to add a few method signatures that reduce Object[] creation and autoboxing feels like
a better idea to me than re-inventing SLF4J -- which was created in the first place to solve
this problem along with a few others.

> 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.


Mime
View raw message