You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Martin Marinov (JIRA)" <ji...@apache.org> on 2014/04/17 11:32:22 UTC

[jira] [Closed] (CAMEL-7374) Slow message processing due to unnecessary logging

     [ https://issues.apache.org/jira/browse/CAMEL-7374?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Marinov closed CAMEL-7374.
---------------------------------

    Resolution: Invalid

The logger works as expected and indeed checks the log level before calling toString() of the arguments. The problem in my case was that I thought I had set up the correct log level in the correct log4j configuration file, but I had not used the wrong file.

Again - deeply sorry.

> Slow message processing due to unnecessary logging
> --------------------------------------------------
>
>                 Key: CAMEL-7374
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7374
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core, camel-jms
>    Affects Versions: 2.12.1
>         Environment: Windows 7 Enterprise 64 bit, Oracle JRE 1.7.0.51
>            Reporter: Martin Marinov
>         Attachments: hotspot_bad.JPG
>
>
> org.apache.camel.component.jms.EndpointMessageListener.onMessage, line 68:
> LOG.debug("{} consumer received JMS message: {}", endpoint, message);
> When debug logging is disabled, the log string from above will not be output anywhere. Nevertheless, it will still be generated. The problem is that DefaultEndpoint.toString() calls URISupport.sanitizeUri() which uses regex pattern matching and replacing to process the passed endpoint URL. The java.util.regex.Matcher.replaceFirst methods turned out to be rather time consuming, thus slowing down the message processing and decreasing the message throughput under high loads. 
> The same problem is observed in org.apache.camel.processor.SendProcessor.process(). It causes slower sending.
> Commenting the LOG.debug invocations at these places improved the message throughput almost 3 times! The solution, of course is not comment these lines, but probably to put them inside
> if (LOG.isDebugEnabled()) { } blocks.



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