You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Viktor Taranenko (JIRA)" <ji...@apache.org> on 2014/08/17 17:08:18 UTC

[jira] [Commented] (KAFKA-1351) String.format is very expensive in Scala

    [ https://issues.apache.org/jira/browse/KAFKA-1351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14099963#comment-14099963 ] 

Viktor Taranenko commented on KAFKA-1351:
-----------------------------------------

I believe loggers already do lots of optimisations for string concatenation.

I see kafka.util.Logging duplicates that functionality a lot

So when you write
{code}
logger.debug("Entry number: {} is {}", i, entry[i]);
{code}
it doesn't do any concatenation if debug level is not enabled (at least in modern loggers).

http://logging.apache.org/log4j/2.x/performance.html

If logging is really a bottleneck in Kafka, you might consider upgrading dependency to [log4j2|http://logging.apache.org/log4j/2.x/], which even has async logging feature based on LMAX Disruptor. I has the similar bindings to slf4j-api which Kafka currently use. Shouldn't be painful.

Consider http://logging.apache.org/log4j/2.x/manual/async.html

> String.format is very expensive in Scala
> ----------------------------------------
>
>                 Key: KAFKA-1351
>                 URL: https://issues.apache.org/jira/browse/KAFKA-1351
>             Project: Kafka
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 0.7.2, 0.8.0, 0.8.1
>            Reporter: Neha Narkhede
>              Labels: newbie
>             Fix For: 0.8.2
>
>         Attachments: KAFKA-1351.patch, KAFKA-1351_2014-04-07_18:02:18.patch, KAFKA-1351_2014-04-09_15:40:11.patch
>
>
> As found in KAFKA-1350, logging is causing significant overhead in the performance of a Kafka server. There are several info statements that use String.format which is particularly expensive. We should investigate adding our own version of String.format that merely uses string concatenation under the covers.



--
This message was sent by Atlassian JIRA
(v6.2#6252)