[
https://issues.apache.org/jira/browse/CAMEL-11348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16031330#comment-16031330
]
Zoltan Farkas commented on CAMEL-11348:
---------------------------------------
requestPath.toLowerCase potentially creates garbage (new String)
{code}
String p1 = requestPath.toLowerCase(Locale.ENGLISH); // traverse string
and create new instance if not already lowercase
String p2 = consumerPath.toLowerCase(Locale.ENGLISH); // traverse
string and create new instance if not already lowercase
if (p1.equals(p2)) { // traverse strings and compare chars
return true;
}
{code}
meanwhile the equivalent::
{code}
if (requestPath.equalsIgnoreCase(consumerPath)) { // traverses strings and
compare chars case insensitively...
return true;
}
{code}
1) is shorter (more readable)
2) does 2 less string traversals and generates no garbage.
As the jira subject says it is a small optimization, but in my opinion
worthwhile doing...
> Small Performance optimization in RestConsumerContextPathMatcher
> ----------------------------------------------------------------
>
> Key: CAMEL-11348
> URL: https://issues.apache.org/jira/browse/CAMEL-11348
> Project: Camel
> Issue Type: Improvement
> Affects Versions: 2.19.0
> Reporter: Zoltan Farkas
> Assignee: Andrea Cosentino
> Priority: Minor
>
> at
> https://github.com/apache/camel/blob/57711e2696c32ef3ab99ad4ccc62f09bfda2ab40/camel-core/src/main/java/org/apache/camel/support/RestConsumerContextPathMatcher.java#L97
> :
> {code}
> String p1 = requestPath.toLowerCase(Locale.ENGLISH);
> String p2 = consumerPath.toLowerCase(Locale.ENGLISH);
> if (p1.equals(p2)) {
> return true;
> }
> if (matchOnUriPrefix && p1.startsWith(p2)) {
> return true;
> }
> return false;
> {code}
> we can improve to:
> {code}
> if (requestPath.equalsIgnoreCase(consumerPath)) {
> return true;
> }
> return matchOnUriPrefix && requestPath.regionMatches(true, 0,
> consumerPath, 0, consumerPath.length());
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)