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

Claus Ibsen resolved CAMEL-5396.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.11.0

Henryks patch improved the performance.

However not using any regexp is even faster, so I added a simple replaceAll 
method to StringHelper in camel-core that is based on a StringBuilder logic. 
Its at least 2x faster than the regexp on my testing.
                
> Improve performance of DefaultJmsKeyFormatStrategy
> --------------------------------------------------
>
>                 Key: CAMEL-5396
>                 URL: https://issues.apache.org/jira/browse/CAMEL-5396
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-jms
>    Affects Versions: 2.9.2
>            Reporter: Mark Hillary
>            Assignee: Claus Ibsen
>              Labels: patch, performance
>             Fix For: 2.11.0
>
>         Attachments: CAMEL-5396.patch, default-jms-key-strat.diff
>
>
> The current default implementation uses String.replace/replaceAll to escape 
> the illegal characters in the header key. This is unfortunate because 
> replace/replaceAll are implemented in terms of regular expressions which 
> makes the escaping quite costly for something that is executed for every 
> single message. Also it's quite likely that the headers will be identical for 
> every single message that's published via JMS. 
> The attached patch makes two changes;
> * Use Commons Lang StringUtil.replaceEach which using a StringBuilder 
> internally to do the replacement. This adds a dependency on Commons Lang.
> * Cache the output of StringUtil.replaceEach in a ConcurrentHashMap. This 
> could be moved to a separate class if caching every key is a concern. Or this 
> could be changed to use an LRUCache

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to