Gagan Arora created AUTOTAG-21: ---------------------------------- Summary: AbstractModelBody.evaluateAsString uses regular expression to replace the contents of the string. It should be able to use a pre compiled Pattern instead for performance reason Key: AUTOTAG-21 URL: https://issues.apache.org/jira/browse/AUTOTAG-21 Project: Tiles Autotag Issue Type: Improvement Affects Versions: 1.1.0 Reporter: Gagan Arora
I am seeing high CPU utilization on AbstractModelBody.evaluateAsString method in my thread dumps. java.lang.Thread.State: RUNNABLE at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715) at java.util.regex.Pattern$Curly.match0(Pattern.java:4158) at java.util.regex.Pattern$Curly.match(Pattern.java:4132) at java.util.regex.Pattern$Branch.match(Pattern.java:4502) at java.util.regex.Pattern$Start.match(Pattern.java:3408) at java.util.regex.Matcher.search(Matcher.java:1199) at java.util.regex.Matcher.find(Matcher.java:592) at org.apache.tiles.autotag.core.runtime.AbstractModelBody.evaluateAsString(AbstractModelBody.java:70) at org.apache.tiles.template.PutAttributeModel.execute(PutAttributeModel.java:96) at org.apache.tiles.jsp.taglib.PutAttributeTag.doTag(PutAttributeTag.java:226) What I did 1. Declared a compiled Pattern private static Pattern pattern = Pattern.compile("^\\s*|\\s*$"); 2. in evaluateAsString : pattern.matcher(body).replaceAll(""); -- This message was sent by Atlassian JIRA (v6.3.4#6332)