Vadim Gritsenko wrote: >Hi, > >Are there any issues if javax.xml.transform.sax.TransformerHandler is >pooled (except increased memory utilization)? I did some quick prototype >and results are encouraging: > >1. Current CVS > Requests per Second: 11.32 > > Page Hits TTFB Avg TTLB Avg > ============================================================ > GET /cocoon/sub/xsp-cocoon 3400 581.52 850.56 > > >2. Pooled XSLT TransformerHandler > Requests per Second: 93.88 > > Page Hits TTFB Avg TTLB Avg > ============================================================ > GET /cocoon/sub/xsp-cocoon 28147 77.38 77.91 > >Test was executed for the 10 minutes. Throughput increased to 829% of >original, page processing time decreased to the 13% of original time. > >PS: Remember that these results are for the very simple XSLT stylesheet >(see sitemap). On more complex stylsheet - this change will have smaller >impact. > >Vadim > Impressive results !
The Trax spec says that a Transformer can be used multiple times, but nothing is said about the reuse of TransformerHandler. However, since SAXTransformerFactory.newTransformerHandler(Templates) creates a new Transformer (at least Xalan's implentation), the only way for us to reuse a Transformer is through the reuse of the TransformerHandler. Now there may be an issue if the transformation ends abruptly because of an exception : in that case, we should garbage the handler so that it is not reused. We already do that for parsers in JaxpParser, but this is not as easy here since the handler is used out of the control of the XSLTProcessorImpl. So what about adding a kind of release(TransformerHandler) on XSLTProcessor that can be used to return a handler once sucessfull transformation has ended ? Sylvain -- Sylvain Wallez Anyware Technologies - http://www.anyware-tech.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]