xsl-list
[Top] [All Lists]

Re: [xsl] Templates.newTransformer synchronization

2006-07-17 06:57:07
I cached a number of transFactory.newTemplates(xslSource) instances
inside a synchronozed map. Then used a servlet to generate the html
output of the transformation. Using Microsoft Application Center Test
(web based stress tester), with 30 simultaneos connections, and 1000
times of a request to that servlet
Saxon: had no problem with that.
Xalan: gives ArrayIndexOutOfBound:
------------------
java.lang.ArrayIndexOutOfBoundsException: -1
        at 
com.sun.org.apache.xml.internal.dtm.ref.sax2dtm.SAX2DTM2._exptype2(SAX2DTM2.java:1925)
        at 
com.sun.org.apache.xml.internal.dtm.ref.sax2dtm.SAX2DTM2.getNodeNameX(SAX2DTM2.java:2666)
        at 
com.sun.org.apache.xalan.internal.xsltc.dom.DOMAdapter.getNodeNameX(DOMAdapter.java:264)
        at tabular$1.test(pred(=(variable-ref(colName/node-set), funcall(name, 
[]))))
---------------------
When I cached translets (instead of translet.newTransformer()), there
was no problem with Xalan.
So I think this could not be thread-safe.

About the test result:
_______________________
Saxon (8.7.1)
Properties
Test type: Dynamic
Simultaneous browser connections: 2
Warm up time (secs): 0
Test duration: 00:00:00:42
Test iterations: 1,000
Detailed test results generated: Yes
Summary

Total number of requests: 6,000
Total number of connections: 6,000

Average requests per second: 142.86
Average time to first byte (msecs): 7.13
Average time to last byte (msecs): 7.31
Average time to last byte per iteration (msecs): 43.84

Number of unique requests made in test: 6
Number of unique response codes: 1

--------------------

Xalan (JRE 5)
Properties
Test type: Dynamic
Simultaneous browser connections: 2
Warm up time (secs): 0
Test duration: 00:00:00:34
Test iterations: 1,000
Detailed test results generated: Yes
Summary

Total number of requests: 6,000
Total number of connections: 6,000

Average requests per second: 176.47
Average time to first byte (msecs): 5.04
Average time to last byte (msecs): 5.22
Average time to last byte per iteration (msecs): 31.32

Number of unique requests made in test: 6
Number of unique response codes: 1
_______________________

Xalan overall time: 34sec
Saxon overall time: 42sec.

My XSLT was version 1.0.
I used no specific configuration for either libraries, so the results
may be inaccurate.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--