Performance of TemplateAttributeRender in Tomcat
------------------------------------------------
Key: TILES-522
URL: https://issues.apache.org/jira/browse/TILES-522
Project: Tiles
Issue Type: Task
Components: tiles-core
Affects Versions: 2.2.2
Environment: Java6, Java7, Tomcat6
Reporter: Mck SembWever
Priority: Minor
TeamplateAttributeRender.write(..) boils down to using
JspRuntimeLibrary.include(..)
In Tomcat-6 this involves wrapping the request and response (a number of
times?) and going through security checks (again and again and again...).
At FINN.no, norway's second largest website, we're getting scores of requests
per second per jvm and seeing this method becoming a bottleneck, mainly due to
thread contention in the security checks.
The method can be sped up by calling, if possible, requestDispatcher.include(..)
For example we have overridden TemplateAttributeRender like
public void write(
final Object template,
final Attribute attribute,
final TilesRequestContext request) throws IOException {
if(request instanceof JspTilesRequestContext && template instanceof
String){
try {
((JspTilesRequestContext) request)
.getPageContext()
.getServletContext()
.getRequestDispatcher((String)template)
.include((ServletRequest) request.getRequest(),
(ServletResponse) request.getResponse());
} catch (ServletException ex) {
throw new TilesIOException(ex);
}
}else{
super.write(template, attribute, request);
}
}
Maybe it's possible to apply this code? Or better yet maybe there's a better
place to apply it? (I've created the issue to spawn the discussion...i'm not
totally convince myself this is code that should be committed...)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira